
- Struts 2 教程
- Struts2 - 首頁
- Struts2 - 基本 MVC 架構
- Struts2 - 概述
- Struts2 - 環境設定
- Struts2 - 架構
- Struts2 - 示例
- Struts2 - 配置
- Struts2 - Action
- Struts2 - 攔截器
- Struts2 - 結果型別
- Struts2 - 值棧/OGNL
- Struts2 - 檔案上傳
- Struts2 - 資料庫訪問
- Struts2 - 傳送郵件
- Struts2 - 驗證
- Struts2 - 國際化
- Struts2 - 型別轉換
- Struts2 - 主題/模板
- Struts2 - 異常處理
- Struts2 - 註解
- Struts 2 標籤
- Struts2 - 控制標籤
- Struts2 - 資料標籤
- Struts2 - 表單標籤
- Struts2 - Ajax 標籤
- Struts 2 整合
- Struts2 - Spring
- Struts2 - Tiles
- Struts2 - Hibernate
- Struts 2 有用資源
- Struts2 - 問題與解答
- Struts2 - 快速指南
- Struts2 - 有用資源
- Struts2 - 討論
Struts 2 - push 標籤
property 標籤用於獲取值的屬性,如果沒有指定,則預設為棧頂的值。此示例演示了三個簡單的資料標籤的使用 - 即set、push 和property。
建立 Action 類
在本練習中,讓我們重用“資料型別轉換”章節中給出的示例,但稍作修改。所以讓我們從建立類開始。考慮以下 POJO 類Environment.java。
package com.tutorialspoint.struts2; public class Environment { private String name; public Environment(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
讓我們有以下 action 類:
package com.tutorialspoint.struts2; import com.opensymphony.xwork2.ActionSupport; public class SystemDetails extends ActionSupport { private Environment environment = new Environment("Development"); private String operatingSystem = "Windows XP SP3"; public String execute() { return SUCCESS; } public Environment getEnvironment() { return environment; } public void setEnvironment(Environment environment) { this.environment = environment; } public String getOperatingSystem() { return operatingSystem; } public void setOperatingSystem(String operatingSystem) { this.operatingSystem = operatingSystem; } }
建立檢視
讓我們有System.jsp,其內容如下:
<%@ page language = "java" contentType = "text/html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> <%@ taglib prefix = "s" uri = "/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>System Details</title> </head> <body> <p>The environment name property can be accessed in three ways:</p> (Method 1) Environment Name: <s:property value = "environment.name"/><br/> (Method 2) Environment Name: <s:push value = "environment"> <s:property value = "name"/><br/> </s:push> (Method 3) Environment Name: <s:set name = "myenv" value = "environment.name"/> <s:property value = "myenv"/> </body> </html>
現在讓我們逐一瞭解這三種方法:
在第一種方法中,我們使用 property 標籤獲取 environment 的 name 屬性的值。由於 environment 變數位於 action 類中,因此它會自動在值棧中可用。我們可以直接使用 propertyenvironment.name 來引用它。當類中屬性數量有限時,方法 1 可以正常工作。想象一下,如果 Environment 類中有 20 個屬性。每次需要引用這些變數時,都需要新增“environment.”作為字首。這時 push 標籤就派上用場了。
在第二種方法中,我們將“environment”屬性推送到棧中。因此,現在在 push 標籤的主體內部,environment 屬性在棧的根部可用。因此,您現在可以像示例中所示的那樣輕鬆地引用該屬性。
在最後一種方法中,我們使用 set 標籤建立一個名為 myenv 的新變數。此變數的值設定為 environment.name。因此,現在我們可以在任何需要引用 environment 的 name 的地方使用此變數。
配置檔案
您的struts.xml 應如下所示:
<?xml version = "1.0" Encoding = "UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name = "struts.devMode" value = "true" /> <package name = "helloworld" extends = "struts-default"> <action name = "system" class = "com.tutorialspoint.struts2.SystemDetails" method = "execute"> <result name = "success">/System.jsp</result> </action> </package> </struts>
您的web.xml 應如下所示:
<?xml version = "1.0" Encoding = "UTF-8"?> <web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "WebApp_ID" version = "3.0"> <display-name>Struts 2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
右鍵單擊專案名稱並單擊匯出 > WAR 檔案以建立 WAR 檔案。然後將此 WAR 部署到 Tomcat 的 webapps 目錄中。最後,啟動 Tomcat 伺服器並嘗試訪問 URLhttps://:8080/HelloWorldStruts2/system.action。這將生成以下螢幕:
