今天遇到一需求:一个jsp1页面需要include另一个jsp2页面,jsp2需要通过action数据处理后显示相关数据
在google搜索不少资料,经过自己反复测试,现做一记录。
不管是<%@ include %> 、<jsp:include/> 、<s:include/> 都是不能include struts的action ,只有使用<s:action>测试通过
action标签介绍:
使用action标签,可以允许在jsp页面中直接调用Action,在调用Action时候,可以指定需要被调用的Action的name和namespace.如果指定了executeResult参数的属性值为true,该标签会把Action的处理结果(视图资源)包含到本页面中.
属性:
id: 可选属性,作为该Action的引用ID
name:必选属性,指定调用Action
namespace:可选属性,指定该标签调用Action所属namespace
executeResult:可选属性,指定是否将Action的处理结果包含到本页面中.默认值为false,不包含.
ignoreContextParam:可选参数,指定该页面的请求参数是否需要传入调用的Action中,默认值是false,即传入参数.
使用样例:
<action name="interiorAction" class="interiorAction">
<result name="view">interior.jsp</result>
</action>
该action的执行结果传入本页面中.
<s:action name="interiorAction" executeResult="true"/>
该action的执行结果传入本页面中. ,但阻止本页面请求参数传入调用action
<s:action name="interiorAction" executeResult="true"/>
该action的执行结果禁止传入本页面中,只处理action业务操作
<s:action="interiorAction" />
错误使用:<s:action="interiorAction.action" />