2011-10-05 42 views
1

我正在使用validate() - struts2的方法來驗證表單輸入。在我的struts.xml中,如果驗證失敗,我可以定義一個名爲「input」的結果。這對於上下文:-)Struts2和預填表格的表單驗證

現在我的問題:我想驗證的表單包含一個選擇框,它是填充數據庫。第一次顯示錶單一切正常。但是,如果我驗證窗體和「輸入」 - 顯示結果,我得到一個IOException,因爲迭代器會將db-result輸出到我的選擇框中。有沒有struts2的解決方案,還是我必須使用插件或類似的東西?謝謝!

+0

你需要提供的信息,只是說你得到一個例外是沒有太大的繼續。它聽起來像選擇框不再被填充,因爲你已經經歷了一個請求週期並丟失了原始列表。如果這是真的,[this](http://struts.apache.org/2.x/docs/how-do-we-repopulate-controls-when-validation-fails.html)將有所幫助,我會轉換這到一個答案。 –

+0

這正是我想知道的! – strauberry

+0

轉換爲答案;很高興它有幫助。 –

回答

3

驗證失敗時,通常需要爲表單頁面「重新加載」數據。有一個FAQ entry that covers repopulating controls after validation,主要詳細介紹Preparable接口(首選)和<s:action>標籤的使用(有一些細微的陷阱可以彈出與此,但總的來說,它也沒關係)。