s:action標籤功能爲:在JSP頁面中訪問action類中的數據,執行某些操作,並返回相應數據;其屬性及意義如下:
屬性名 | 是否必需 | 默認值 | 類型 | 說明 |
executeResult | False | False | Boolean | 是否將action返回的結果視圖顯示在當前頁面中 |
flush | False | True | Boolean | 是否進行刷新 |
ignoreContextParams | False | False | Boolean | 是否忽略URL參數 |
name | True | — | String | 指定調用哪個action |
namespace | False | — | String | 指定調用哪個action的命名空間 |
var | False | — | String | 將調用的action的名稱放到值棧中 |
2.新建Acton實例類
- package com.wl.control.tagsAction;
- import com.opensymphony.xwork2.ActionSupport;
- public class RunAction extends ActionSupport {
- private String name;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Override
- public String execute() throws Exception {
- return "runaction";
- }
- }
3.新建JSP頁面
- <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
- <%@ taglib uri="/struts-tags" prefix="s" %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <body>
- name的值是:
- <s:property value="#parameters.name"/>
- </body>
- </html>
4.修改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>
- <package name="Struts2.1" extends="struts-default">
- <action name="runaction" class="com.wl.control.tagsAction.RunAction">
- <result name="runaction">/controlTags/runaction.jsp</result>
- </action>
- </package>
- </struts>
5.創建使用Action標籤的JSP頁面
- <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
- <%@ taglib uri="/struts-tags" prefix="s" %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <body>
- 顯示runaction.jsp中的內容並且輸出name參數的值:
- <br/>
- <s:action name="runaction" executeResult="true"></s:action>
- <br/>
- 顯示runaction.jsp中的內容並且不輸出name參數的值:
- <br/>
- <s:action name="runaction" executeResult="true" ignoreContextParams="true"></s:action>
- <br/>
- 僅僅調用runaction,不顯示結果:
- <br/>
- <s:action name="runaction"></s:action>
- <br/>
- </body>
- </html>
註釋:s:action標籤的屬性executeResult值爲True時,代表返回一個結果頁面在JSP頁面中顯示;s:action標籤屬性ignoreContextParams值爲True時,代表忽略URL中的參數。
特別注意了,這樣容易造成死循環,可以新建一個JSP頁面,加上 <s:action name="runaction" executeResult="true"></s:action>,然後在struts.xml中跳轉到內容頁面