2013-01-08 15 views
2

我有一個問題,而試圖重定向與動態參數映射重定向。使用Struts2的動態參數不工作

我映射的方式在Struts2:在動作

<action name="Delete" class="templateLalaAction" method="remove"> 
    <result name="success" type="redirect-action"> 
     <param name="actionName">LalaTemplatesDisplay</param> 
     <param name="buId">${buId}</param> 
    </result> 
    <result name="failure" type="redirect-action"> 
     LalaTemplatesDisplay 
    </result> 
</action> 

的方法 「去除」:

remove() { 

    putRequestAttribute("buId",Long.valueOf("1111")); 
    return SUCCESS; 
} 

如果我這樣做,我設置buId=1111,但是當我運行應用程序時,urlbuId= (it's empty),即結束,沒有參數被傳遞。 如果我評論的putRequestAttribute方法,並設置支柱傳遞buId參數爲static值:

<action name="Delete" class="templateLalaAction" method="remove"> 
    <result name="success" type="redirect-action"> 
     <param name="actionName">LalaTemplatesDisplay</param> 
     <param name="buId">1111</param> 
    </result> 
    <result name="failure" type="redirect-action"> 
     LalaTemplatesDisplay 
    </result> 
</action> 

它的工作原理和urlbuId=1111結束。

我也看了這個question那裏接受的答案告訴我們,做我做同樣的,但如果我們閱讀用戶所做的評論,我們會看到他有我也有同樣的問題。我可能做錯了什麼?

回答

1

裏面你的方法只是分配buId變量,你需要的getter /爲它制定者在動作類。

public String remove() { 
    buId = 1111l; 
    return SUCCESS; 
} 

而且你正在使用舊語法redirect-action,使用駱駝情況redirectAction

+0

謝謝!這很荒謬,但確實是這個問題! – periback2

+0

我最好不要改變,因爲這個代碼(重定向行動)是舊的,所以我不能夠重構它所有的(可惜的):/ – periback2