关于在多个Action之间传递参数

使用chain的方式会保留请求参数,这毫无疑问。

<action name="addCommentPro" class="addCommentAction">           
   <interceptor-ref name="authorityStack"/>      
   <result type="chain">viewCommentPro</result>
</action>

当使用redirectAction时,会发生重定向,参数会丢失,可以使用以下两种方式传递参数,两种方法下目标Action都必须有对应属性的getter,setter方法

param方式:

<action name="addCommentPro" class="addCommentAction">
            <interceptor-ref name="authorityStack"></interceptor-ref>
            <result type="redirectAction">
                <param name="actionName">viewCommentPro</param>
                <param name="aid">${aid}</param>
            </result>
</action>

直接传递:

<action name="addCommentPro" class="addCommentAction">
            <interceptor-ref name="authorityStack"></interceptor-ref>
            <result type="redirectAction">viewCommentPro?aid=${aid}</result>
</action>

从上面看出,在struts.xml里调用OGNL表达式并不是使用%{}而是使用${},这和EL表达式在JSP页面中的用法一样。

 

顺便复习下Struts2中#,$和%的用法

  • 井号(#)主要用于访问OGNL的上下文,相当于ActionContext.getContext(),多用于访问request,session等内置对象。
<s:iterator value="#request.articles" id="a" status="s">
            <tr>
                <td><s:property value="#s.index"/></td>
                <td class="title"><s:property value="#a.title"/></td>
                <td class="content"><s:property value="#a.content"/> </td>
                <td class="username"><s:property value="#a.user.username"/></td>
                <td><s:a action="deletePro?id=%{#a.id}">删除</s:a></td>
            </tr>
        </s:iterator>

百分号(%)主要用于在标志的属性为字符串类型时,计算OGNL表达式的值。

<td><s:a action="deletePro?id=%{#a.id}">删除</s:a></td>
<p><s:url value=”%{#foobar['foo1']}” /></p>

  • 美元符号($)主要用于在国际化资源文件或xml配置文件中使用OGNL表达式,例子如上Action间传值。

 

顺便再复习下,EL表达式语法${expression}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值