2011-08-17 55 views
2

我有這樣如何在驗證後將struts2動作重定向到url?

if (this.sequence.equals("")) { 
     action= "input"; 
    } else {url = "/files/" + testHTML.getName(); 
     action= "redirect"; 

    } 
     return action; 
在我的struts.xml

我的動作declarated一個URL創建一個動作已經

 <interceptor-ref name="completeStack"/> 
     <interceptor-ref name="execAndWait"> 
      <param name="delaySleepInterval">500</param> 
     </interceptor-ref> 
     <result name="wait">testwait.jsp</result> 
     <result name="input">test.jsp</result> 
     <result name="redirect" type="redirect">${url}</result> 
    </action> 

當我啓動應用程序,創建網址但是沒有重定向到這個新頁面,而是到了test.jsp頁面,並且出現了驗證錯誤消息。任何人有一些想法?

回答

0

如果您正在使用驗證方法,如果有驗證錯誤支柱返回結果NAME =「輸入」。在你的情況下把重定向在

 <result name="input" type="redirect">${url}</result> 
+0

只有在行動中沒有錯誤並且我想要的時候纔會創建url(一個HTML頁面),就是看到這個新頁面 – ygizard 2011-08-17 10:58:32

+0

因爲我可以看到你想要存檔什麼,起初你可以重定向到另一個動作,但你要只顯示不同的jsp頁面爲什麼不試試這樣<結果名稱=「displayPage」> $ {} dynamicPage其中 $ {dynamicPage} =「pathToThePage」 – Zemzela 2011-08-17 11:11:26

1

你原來的代碼示例看起來是正確的。這裏有幾件事要檢查:

  • 你的行動有一個getUrl()方法嗎?結果的${url}部分依賴於該方法來獲取url屬性。
  • 您已經驗證正確的結果在每種情況下返回?例如在else塊中'重定向',否則'輸入'。
相關問題