JSF頁面出錯(cuò)的時(shí)候,DataTable不能恢復(fù)原有值的解決辦法
摘要: 在使用JSF的時(shí)候,它的事件驅(qū)動(dòng)模式是一個(gè)很好的開發(fā)方法,但是由于JSF畢竟現(xiàn)在的版本才1.2,所以對(duì)于有些細(xì)節(jié)上面處理就不一定如人意了,一般來說,當(dāng)JSF的頁面驗(yàn)證有錯(cuò)或者有其它的錯(cuò)誤的時(shí)候,我們以前輸入的值會(huì)在渲染頁面的時(shí)候,恢復(fù)回來,也就是說,一個(gè)域我們綁定在后臺(tái)的屬性是一個(gè)int 值,但是我們前臺(tái)輸入了“abcd”,這個(gè)時(shí)候,后臺(tái)在驗(yàn)證階段就過不去了。然后直接渲染頁面,JSF 會(huì)把我們輸入錯(cuò)誤的abcd渲染出來。而不是把我們以前綁定在后臺(tái)的那個(gè)屬性的值,取出來,這樣也正是我們想要的結(jié)果,但是當(dāng)我們的頁面包括了 dataTable的時(shí)候,并且DataTable里面的值是可以編輯的時(shí)候,當(dāng)頁面上有錯(cuò)誤的時(shí)候,別的域都會(huì)顯示剛才我們輸入的值,唯有 DataTable里面的輸入域的值沒有還原為我們剛才輸入的值,而是綁定在后臺(tái)的值,這顯然不是我們想要看到的。但是當(dāng)DataTable有錯(cuò)誤的輸入的時(shí)候,DataTable才會(huì)把它的值恢復(fù)回來。說了這么說,感覺有點(diǎn)語無倫次了,還是拿代碼說話吧。
閱讀全文