2011-05-30 48 views
1

參數n其JSP值從動作我的行動,比如在下面的struts.xml如何獲得在Struts2

defaultPage defaultPage

我想控制與幾個一起重定向到同一頁面根據從方法「sentMailToContactUs」

實施例的結果參數:

如果sentMailToContactUs返回成功/失敗

<result name="success" type="redirctAction"> 
<param name ="actionName">Contact</param> 
<param name ="resultRtn">Y</param> 
</result> 

    <result name="fail" type="redirctAction"> 
<param name ="actionName">Contact</param> 
<param name ="resultRtn">N</param> 
</result> 

如何讀取動作JSP以上參數...........?

如果參數resultRtn = 'Y' - >一些控件可用

如果參數resultRtn = 'Y' - >某些控件都無法使用,

如果參數resultRtn = '空' - - >顯示所有控制

謝謝......

回答

2

對我來說,它的工作是這樣的..

在struts.xml中:

<result name="success" type="redirectAction"> 
    <param name="actionName">Contact</param> 
    <param name="resultVariable">${resultVariable}</param> 
</result> 

在動作類的getter二傳手爲resultVariable

接觸頁接收參數n它的價值:

<s:set var="reaultTyp"><s:property value="%{#parameters['resultVariable']}"/></s:set> 

謝謝你們倆......

+0

謝謝,這個工作適合我。我正在使用沒有成功! – Accollativo 2014-05-08 10:43:22

1

你需要在你的Contact動作設置「Y」一個設置resultRtn方法,「N」或OT她的價值觀。你需要有一個得到方法爲您的JSP調用,以便您可以檢索值並相應地顯示控件。

+0

結果配置中的參數標籤在結果​​上設置,而不是在操作上設置。在上面的例子中,Struts2會調用'setActionName'方法,並試圖在'ServletActionRedirectResult'上調用'setResultRtn'方法,而後者不存在。一旦他成功地將resultRtn = Y/N附加到URL中,那麼你的回答是正確的。 – 2011-05-30 16:28:26

1

param標記不用於設置URL上的參數,它用於設置結果的配置參數。你應該能夠在actionName內設置的查詢字符串參數如下:

<result name="success" type="redirctAction"> 
    <param name="actionName">Contact?resultRtn=Y</param> 
</result> 

<result name="fail" type="redirctAction"> 
    <param name="actionName">Contact?resultRtn=N</param> 
</result> 

也可以代替redirectAction的正常用重定向這裏。