[問題] struts2 interceptor vaildation的問題

看板java作者 (人多更寂寞)時間13年前 (2013/02/07 14:46), 編輯推噓3(309)
留言12則, 6人參與, 最新討論串1/1
小弟剛學習struts2+spring+hibernate的架構不久,有一個問題困擾我很久,不知道 怎麼解決,不知道版上有沒有高手能夠幫忙解決這個問題或是提供一些方向? 問題是這樣的,在struts中有使用了defaultStack,有一支表單的程式(prodedit.jsp) 需要做驗證,prodedit.jsp將表單送出至ProdAction去做該做的事情,在那之前要被 攔截器攔截做驗證,當中有配置了一個ProdAction-validation.xml的檔案 prodedit.jsp中每個欄位都必須填寫, 當中有一個prodPrice的欄位,這個欄位在 ProdAction中的屬性是Integer的型態,而且因為這欄位強迫必須填寫,所以我們在 ProdAction-validation.xml中會去定義 <field-validator type="required"> 問題來了,如果今天我在prodPrice這個欄位中填入了"12a",因為他不是Integer ,所以會被defaultStack中的conversionError所攔截,最後在fieldError裡面就會 出現兩個ErrorMessage: 1.Invalid field value for field "prodPrice" 2.價錢欄位不能為空白(這是自己設置的) 簡單來說,不希望他同時出現兩個訊息,不知道板上有沒有人對於這個問題有沒有什麼 看法能夠提供小弟去處理他。 這邊先說明一下,我有先上網google過了,網路上有人說把defaultStack中的 conversionError這一個interceptor拿掉就好了,這也許是一個辦法,但我想說如果 不去動到他defaultStack的情況之下,是否有更好的解決辦法?? 另外,我其實透過自己寫一個interceptor也可以解決,就是不使用他的 defaultStack的interceptor,但這個做法跟上述其實沒什麼差別,就是別用 conversionError這一個interceptor而已,所以我想知道的是,如果要用 conversionError這一個interceptor的情況之下,是否能夠解決剛剛所敘述的兩個 錯誤訊息的這一個問題?? 文章有點長,感謝大家耐心看完 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.75.169.115

02/07 16:15, , 1F
其實你可以在送出之前用js檢查就好了啊@@也可以顯示訊息
02/07 16:15, 1F

02/07 16:49, , 2F
用JS檢查我知道 但是JS治標不治本~~問題的核心也還是存在
02/07 16:49, 2F

02/07 17:43, , 3F
why JS治標不治本?我練習是用jquery-plugin-validation
02/07 17:43, 3F

02/07 17:45, , 4F
另外聽說現在新的東西幾乎都是用springMVC,是真的嗎?
02/07 17:45, 4F

02/07 17:49, , 5F
client side 檢查不可信。
02/07 17:49, 5F

02/07 18:09, , 6F
請問在怎樣的情況,會使用 client sid e的檢查
02/07 18:09, 6F

02/07 18:19, , 7F
還是通常在 client 跟 server 都會做檢查?
02/07 18:19, 7F

02/07 22:51, , 8F
client 檢查→縮短回應時間,server 檢查→防止惡搞
02/07 22:51, 8F

02/08 00:02, , 9F
一般來說client跟server端都會作~~client的檢查容易被破
02/08 00:02, 9F

02/08 00:04, , 10F
server的檢查才是最後一道防線阿~~
02/08 00:04, 10F

02/08 00:07, , 11F
對於文章提出的問題有人有什麼方向可建議嗎??高手出來吧XD
02/08 00:07, 11F

02/10 11:37, , 12F
為什麼不把檢查寫在action,而執着用struts的驗證
02/10 11:37, 12F
文章代碼(AID): #1H4qsp9a (java)