我有一個運行在weblogic上的j2ee應用程序。我對我的多盒子感到困惑。無法取消全部在Struts Multibox中
我所知道的multibox的是,檢查的項目將作爲提交的字符串數組傳遞。
我不知道爲什麼在我的應用程序中工作正常,當我取消選中複選框或更多,只要單個框保持選中狀態,但當我取消選中所有內容時,提交的數組就是之前選中的多框的數組它應該是空的。
你能幫助我嗎?
我有一個運行在weblogic上的j2ee應用程序。我對我的多盒子感到困惑。無法取消全部在Struts Multibox中
我所知道的multibox的是,檢查的項目將作爲提交的字符串數組傳遞。
我不知道爲什麼在我的應用程序中工作正常,當我取消選中複選框或更多,只要單個框保持選中狀態,但當我取消選中所有內容時,提交的數組就是之前選中的多框的數組它應該是空的。
你能幫助我嗎?
您是否熟悉ActionForm類的reset()方法?
此方法的生活目的是重置複選框。如果您的表單中有一個選中的複選框,並且您提交了該複選框,則該複選框將根據請求提供。如果取消選中該複選框,則不會發送任何請求(GET提交是觀察此行爲的簡單方法)。
當Struts執行請求綁定時,它按名稱將請求中的參數與表單中的參數進行匹配。也就是說,如果有什麼要匹配的話。
現在考慮下列步驟操作:
上面的內容適用於多個複選框,但是您會得到一個數組而不是一個值。
輸入reset()方法。這在綁定請求之前由Struts調用。在這裏,您可以將字段值設置爲false。如果它到達請求中,Struts將用true => OK替換它。如果它沒有到達請求(因爲它未被選中),該值將保持爲false =>再次確定。
多盒子也是如此。您必須通過將數組減少到零長度來重置ActionForm中的值列表(但不爲空)。
如果您的ActionForm具有請求範圍,它通常無關緊要,因爲該對象是在每個請求時重新創建的。但是對於帶有複選框的會話範圍的ActionForm,reset()是必須的。