使用action标签,可以允许在jsp页面中直接调用Action,在调用Action时候,可以指定需要被调用的
Action的name和 namespace.如果指定了executeResult参数的属性值为true,该标签会把
Action的处理结果(视图资源)包含到本页面中. 使用action标签指定属性有:
id: 可选属性,作为该Action的引用ID
name:必选属性,指定调用Action
namespace:可选属性,指定该标签调用Action所属namespace
executeResult:可选属性,指定是否将Action的处理结果包含到本页面中.默认值为false,不包含.
ignoreContextParam:可选参数,指定该页面的请求参数是否需要传入调用的Action中,默认值是false,即传入参数.
<s:action name="login" executeResult="true" namespace="/"></s:action>
传递参数
<s:action name="actinName" executeResult="true" namespace="/">
<s:param name="currentPage" value="传递的值"></s:param>
</s:action>
<s:param ></s:param>是以request方式的值的,而不是以参数传值
所以request.getParameter("")会获取不到值
通过request.getAttribute("")方式可以获取
另外:使用<s:param ></s:param> value指代的是action定义的对象的名称,而不是一个值
和 <s:textfield>中的name是一个意思,所以要要传递字符串的不能把值写value中而应该写到
<s:param >写到这里</s:param>
=========================
将下面的JSP代码新建一个JSP页面,如nachrichtungselect.jsp
<s:if test="objlist!=null">
<s:select list="objlist" name="nid" listkey="ncid" listvalue="ncname" />
</s:if>
新建nachrichtungaddedit.jsp页面中写
<s:action name="NachRichtungAddEdit" executeResult="true"></s:action>
最后到struts.xml有一如下配置
<action name="NachRichtungAddEdit" class="admin.view.NewsClassAction" method="list">
<result>nachrichtungselect.jsp</result>
</action>
这样当访问nachrichtungaddedit.jsp时,会在页面上执行NachRichtungAddEdit这个aciton~并将最终的结果页 面,也就是nachrichtungselect.jsp上所的到的结果页面,包含在nachrichtungaddedit.jsp中
例如:
struts.xml如下配置
<package name="reportList" namespace="/reportList" extends="default">
<action name="tab_*" action="xxxx" method="{1}"
<result></result>
</action>
</package>
页面加载如下段
<s:action na
me="tab_gotoHeader" namespace="/reportList" executeResult="true">
<s:param name="headerMap" value="headerMap"></s:param>
<s:param name="scopeId" value="1"></s:param>
<s:param name="reportRemark" value="indicator.concept"></s:param>
<s:param name="headerMap['lbName']" value="indicator.description"></s:param>
</s:action>
xxx.action中只要set,get headerMap,scopeId就可以拿到值了