2011-12-08 114 views
0

我有下面的條目在struts.xml中Struts2的行動調用不給錯誤信息

<action name="download" method="download" class="com.pqr.myaction"> 
     <result name="error" type="redirectAction">callme</result> 
    </action> 

    <action name="callme" class="com.pqr.myaction"> 
     <result name="imhere" type="tiles">imhere.tiles</result>   
    </action> 

imhere.tiles對應於瓷磚imhere.jsp &顯示「下載」鏈接。

當我點擊下載,我在構造URL,從& donwload包如果是空的,我返回錯誤&還設置類變量this.errMsg =「ERROR」 &然後imhere顯示它。 JSP 如下圖所示:

 <s:if test="errMsg != null"> 
      <div id="normalErrMsg"><p><s:property value="errMsg" escape="false" /></p></div> 
     </s:if> 

    <a href="/download"> 
     <s:property value="getText('DOWNLOAD')" escape="false" /> 
    </a> 

但不知何故,控制不進入上述條件,如果在所有。

任何人都可以告訴我什麼是這種行爲?

謝謝!

+0

使用鏈結果而不是redirectAction,這將做你想要的。 –

回答

1

A redirectAction就是這樣一個重定向。請求屬性和參數丟失,因爲它是新請求,新動作實例等。

您可以轉發,在地址欄中保留URL並保留相同的操作,使用"scope"攔截器臨時存儲消息/ data,或將這些消息存儲在會話中,並在輸入myaction時刪除它們。

在這種情況下,我不知道我會打擾重定向,但。

+0

我對struts2很新穎,如果你能提供一個例子如何使用它,我將不勝感激。 – Mike

+0

@Mike使用什麼?至少有*我列出的三個選項 - 爲什麼你需要重定向? –

+0

嗨戴夫,我的意思是你可以提供範圍攔截器的例子嗎?我是struts2的新手 – Mike