簡體   English   中英

Struts 2缺少重置方法?

[英]Struts 2 missing reset method?

我正在將一個項目從Struts 1.3遷移到Struts 2.0。 現在,我已經閱讀了Web上的各種資源,但是找不到Struts 2.0中的Struts 1.3 reset()形式方法。

我的動作類擴展了ActionSupport並實現了Modeldriven 我已經在動作類中實現了validate方法,並且效果很好。 但是,當表單沒有錯誤且提交已正確完成時,頁面將重新加載初始值。

我希望我會收到一個空白表格。 我尋找了reset()表單方法,但找不到。 當前,我將所有表單值明確設置為空白。 我不認為這是一種好的編程習慣。 請建議如何在struts 2.0中實現表單reset()。

編輯:好的,您正在使用Tiles(我從未使用過),然后嘗試其他解決方案:

如果您有一個空的JSP磁貼,並且在用戶編譯了其字段並提交了表單之后,您希望始終清除這些字段...那么,在Action中僅聲明SETTERS而不是GETTERS怎么辦?

您只能從JSP設置為Action,而不能從JSP讀取它們……那么您的字段在頁面中將始終為空,並且始終由Action中的設置者重寫。


如果我明白了,那么您在JSP上,則調用了Action(或其他Action)的saveStuff()方法,然后返回頁面...

在這種情況下,您可以使用RedirectAction返回類型,該類型將剝離請求中的所有參數,並將請求重定向到Action的execute()方法。

所以,代替

<action name="myAction" class="com.blabla.myAction">
        <result name="success">/myPage.jsp</result>
</action>

做就是了

<action name="myAction" class="com.blabla.myAction">
      <result name="success">/myPage.jsp</result>
      <result name="stuffSaved" type="redirectAction">
          <param name="actionName">myAction</param>
      </result>
</action>

這樣,您可以重新進入初始狀態(假設您沒有將任何內容放入JSP讀取的會話中)。

因為您的ActionForm在Struts2中位於同一類中,所以您必須實現自己的reset()方法以清除所需的任何數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM