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,否則你的參數值是無法傳遞的,這是自己后來才發現的,大家有興趣的可以去試試...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM