看板 java 關於我們 聯絡資訊
小弟剛學習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
d1288999:其實你可以在送出之前用js檢查就好了啊@@也可以顯示訊息 02/07 16:15
gto770:用JS檢查我知道 但是JS治標不治本~~問題的核心也還是存在 02/07 16:49
cyclone350:why JS治標不治本?我練習是用jquery-plugin-validation 02/07 17:43
cyclone350:另外聽說現在新的東西幾乎都是用springMVC,是真的嗎? 02/07 17:45
qrtt1:client side 檢查不可信。 02/07 17:49
cyclone350:請問在怎樣的情況,會使用 client sid e的檢查 02/07 18:09
cyclone350:還是通常在 client 跟 server 都會做檢查? 02/07 18:19
PsMonkey:client 檢查→縮短回應時間,server 檢查→防止惡搞 02/07 22:51
gto770:一般來說client跟server端都會作~~client的檢查容易被破 02/08 00:02
gto770:server的檢查才是最後一道防線阿~~ 02/08 00:04
gto770:對於文章提出的問題有人有什麼方向可建議嗎??高手出來吧XD 02/08 00:07
song760211:為什麼不把檢查寫在action,而執着用struts的驗證 02/10 11:37