samtiger


          QQ:418148757
          Name:yangchuan
          數據加載中……
          struts2驗證失敗后返回input,select中list數據丟失問題

          很多人都在問,struts2驗證失敗后select中list數據丟失的問題

          could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name}。
          其實這個問題很簡單,大多數人,是通過action跳轉到數據編輯頁面的,這樣做的目的是方便把數據庫里的數據,反顯到頁面。同時也可以通過該action 將select中的列表數據從數據庫中取出,傳遞給頁面。但是,這里出現一個問題,那就是在struts2驗證失敗后返回input的時候,頁面不是通過該action的該方法傳遞回去的(實際上是通過DefaultWorkflowInterceptor攔截器攔截回去的),所以這個時候頁面就找不到sleect的數據集合,從而報錯。有的人也許會問,修改input的type為redirect,直接掉轉到那個action上去,呵呵,這種方法雖然可以保證得到select的數據集合,因為redirect的性質,我們丟失了之前驗證的錯誤信息。所以還是不能解決問題,那么有的人可能說了,那么改用chain就可以了吧,如果改用chain,我們知道,chain是action鏈的掉轉,執行action還是要經過攔截器,所以因為你帶有驗證錯誤信息,你還是會被DefaultWorkflowInterceptor攔截器攔截,還是會報錯,而且是chain鏈錯。
              其實,可以反一種思路,既然走跳轉不成功,我們可不可以在頁面上下功夫呢。其實我們的select的list能不能不經過action而直接得到數據呢,是可以的,我們的ognl可以訪問某個對象的某個方法,也可以訪問某個靜態類的靜態屬性,靜態方法。所以我們可以將這些數據通過對象方法訪問,也可以通過靜態類的靜態方法去訪問,具體怎么做,根據需要寫就可以了。代碼就不在這里寫了,因為非常簡單。

          posted on 2010-05-15 09:35 sam.chuan.yang 閱讀(2670) 評論(2)  編輯  收藏

          評論

          # re: struts2驗證失敗后返回input,select中list數據丟失問題 2011-04-26 16:36 holdlg

          大哥,太簡單了,不知道怎么寫,要用ajax嗎?汗項目都快完工了,又叫填靜態類方法...無語...
            回復  更多評論    

          # re: struts2驗證失敗后返回input,select中list數據丟失問題 2011-04-27 16:20 samtiger

          @holdlg
          select 的列表數據,最簡單的就直接通過靜態方法去生成就可以了
            回復  更多評論    

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 内乡县| 遂昌县| 汤阴县| 武乡县| 西乌珠穆沁旗| 漯河市| 邻水| 新营市| 曲阳县| 新郑市| 全椒县| 朝阳县| 莎车县| 犍为县| 龙游县| 榆社县| 仙桃市| 静乐县| 齐河县| 华池县| 崇明县| 南川市| 区。| 苏州市| 永善县| 若羌县| 故城县| 原阳县| 建瓯市| 兴山县| 从江县| 云安县| 皋兰县| 横山县| 那曲县| 安化县| 岱山县| 新源县| 昌乐县| 呼和浩特市| 阿城市|