zoukankan      html  css  js  c++  java
  • Struts2之两个Action传值和不传值的struts.xml文件配置

     例如
    在执行完action1之后要直接跳转到action2,并且action1要传一些参数给action2,在struts.xml文件中的配置如下:
       
        <action name="action1" method="" class="">
                <result
    name="success" type="chain">
                    <param
    name="actionName">action2</param>
                    <param
    name="param1">${param1}</param>
                    <param
    name="param2">${param2}</param>
                </result>         
        
            </action>  

    注意:
         1.
    若param1和param2是两个变量,那么在两个action中都要有他们的getter和setter
         2.
    若param1是常量,那么在action1中只要有一个param1的getter,在action2中要有param1的getter和setter   


    如果在两个action之间直接跳转而不用传参数,struts.xml文件可以和上面一样,只是没有param标签,还可以使用如下配置:
       
    <action name="action1" method="" class="">
            <result
    name="success" type="redirectAction">action2.action</result>          
       
        </action>
    即可


    struts2 action 向jsp页面传递参数问题

    在JSP页面的<@page>标签下面加一个 <@ taglib prefix="s" uri="/struts-tags" >标签包(关于这个标签包的配置和使用建议到网上搜索看看),然后 yes.jsp写法。
    <s:iterator value="list" id="item">
    <s:property value='item'/>
    </s:iterator> 这里面item对应着list里的每个元素。 如果item 是对象(如是People对象且People有一个name属性)则可以写成下这样。
    <s:iterator value="list" id="item">
    <s:property value='#item.name'/>
    </s:iterator>



    在 Action中我们经常会从这个Action跳转到另一个Action中,如果只是简单的跳转那么很 容易,只需在struts配置文件中添加一个result,如:<resultname="index">/manager /managerInfo/account.jsp</result>. result 有一个type属性,这里的type默认是dispatcher,但这种情况下action之间是不能发送请求的,这时我们就要用到 redirect、redirect-action、chain,当要请求一个action时,可设定type的值为以上三个中的一个,如:<result name="reload" type="redirectAction">/manager/managerInfo/account.action</result>.
       如果想在请求的过程中添加参数可以像超链接传值一样在最后用"xx?xx=xx" 的形式来传递参数.如:<result name="reload" type="redirectAction">/manager/ managerInfo/account.action?参数名=参数值</result>,如果这里的参数值不是一个固定值可以用"${参 数值}"这种形式,需要注意的是这里的"参数值"在相应的Action中一定要提供get/set方法,否则将无法获得参数值,当然这里也同样可以取一个 对象的某个属性值即:${对象名.属性名},假如我想取得一个帐户的帐号:<result name="reload" type="redirectAction" >/manager/managerInfo/account.action?account.accountNO=${account.accountNO}</result>.
    如 果想传递多个参数用"&"符号来连接吗?NO,因为 用"&"会在XML语法检查中报错,所以将"&"用"&amp;"来替换就行了!如:<result name="reload" type="redirectAction" >/manager/managerInfo/account.action?account.accountNO=${account.accountNO}&amp;account.balance=${account.balance}</result>.
    注:当使用type="redirectAction"时,result中的.action(上面红色标注的地方)可要可不要,但是当你要传递参数里,而且参数中含有中文字符时一定不要加.action,否则你的参数值是无法传递的,这是自己后来才发现的,大家有兴趣的可以去试试...
  • 相关阅读:
    HDU 5912 Fraction (模拟)
    CodeForces 722C Destroying Array (并查集)
    CodeForces 722B Verse Pattern (水题)
    CodeForces 722A Broken Clock (水题)
    CodeForces 723D Lakes in Berland (dfs搜索)
    CodeForces 723C Polycarp at the Radio (题意题+暴力)
    CodeForces 723B Text Document Analysis (水题模拟)
    CodeForces 723A The New Year: Meeting Friends (水题)
    hdu 1258
    hdu 2266 dfs+1258
  • 原文地址:https://www.cnblogs.com/yaowen/p/2949258.html
Copyright © 2011-2022 走看看