[問題] struts2 interceptor vaildation的問題
小弟剛學習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
02/07 16:15, 1F
→
02/07 16:49, , 2F
02/07 16:49, 2F
→
02/07 17:43, , 3F
02/07 17:43, 3F
→
02/07 17:45, , 4F
02/07 17:45, 4F
→
02/07 17:49, , 5F
02/07 17:49, 5F
推
02/07 18:09, , 6F
02/07 18:09, 6F
→
02/07 18:19, , 7F
02/07 18:19, 7F
→
02/07 22:51, , 8F
02/07 22:51, 8F
→
02/08 00:02, , 9F
02/08 00:02, 9F
→
02/08 00:04, , 10F
02/08 00:04, 10F
→
02/08 00:07, , 11F
02/08 00:07, 11F
推
02/10 11:37, , 12F
02/10 11:37, 12F