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,否则你的参数值是无法传递的,这是自己后来才发现的,大家有兴趣的可以去试试...
  • 相关阅读:
    About Us
    WeCenter 社交化问答社区程序 | WeCenter 是一款知识型的社交化问答社区程序,专注于社区内容的整理、归类、检索和再发行
    C++的Json解析库:jsoncpp和boost
    c++
    牛黄上清片_百度百科
    python中multiprocessing.pool函数介绍_正在拉磨_新浪博客
    What’s New in Python 2.7 — Python 3.4.0b2 documentation
    What’s New in Python 2.7 — Python 3.4.0b2 documentation
    掌阅科技(ireader)年薪25w—45w 诚聘python高手,如果很牛可再议
    Vedis
  • 原文地址:https://www.cnblogs.com/yaowen/p/2949258.html
Copyright © 2011-2022 走看看