关于在多个Action之间传递参数
使用chain的方式会保留请求参数,这毫无疑问。
<action name="addCommentPro"
class="addCommentAction">
<result
type="chain">viewCommentPro</result>
</action>
当使用redirectAction时,会发生重定向,参数会丢失,可以使用以下两种方式传递参数,两种方法下
目标Action都必须有对应属性的getter,setter方法
param方式:
<action name="addCommentPro"
class="addCommentAction">
</action>
直接传递:
<action name="addCommentPro"
class="addCommentAction">
</action>
从上面看出,在struts.xml里调用OGNL表达式并不是使用%{}而是使用${},这和EL表达式在JSP页面中的
用法一样。
顺便复习下Struts2中#,$和%的用法
井号(#)主要用于访问OGNL的上下文,相当于ActionContext.getContext(),多用于访问
request,session等内置对象。
<s:iterator
value="#request.articles" id="a"
status="s">
百分号(%)主要用于在标志的属性为字符串类型时,计算OGNL表达式的值。
<td><s:a
action="deletePro?id=%{#a.id}">删除</s:a></td>
<p><s:url
value=”%{#foobar['foo1']}”
/></p>
美元符号($)主要用于在国际化资源文件或xml配置文件中使用OGNL表达式,例子如上Action间传值。
顺便再复习下,EL表达式语法${expression}
本文深入探讨了Struts2框架中在多个Action之间传递参数的方法,包括使用chain和redirectAction的方式,并详细解释了如何在Struts.xml中通过OGNL表达式进行参数传递。此外,文章还复习了Struts2中#,$,%符号的用法,以及如何在JSP页面中使用EL表达式。
2553

被折叠的 条评论
为什么被折叠?



