Struts2输入校验
1.校驗表單信息是否符合常規(guī)(輸入校驗)
? ActionSupport實現(xiàn)接口Validateable,接口中定義方法validate,需要
??Override方法validate
2.校驗類型轉(zhuǎn)換(類型轉(zhuǎn)換)
? (1)全局校驗
?? 在struts.xml中添加
?? <constant name="struts.custom.i18n.resources"value="message">
?? </constant>
?? 在src目錄下創(chuàng)建文件message.properties
?? 內(nèi)容如下:
?? xwork.default.invalid.fieldvalue={0} error
?? (2)局部校驗
?? 在需要校驗的RegisterAction的同一包下,創(chuàng)建文件
?? RegisterAction.properties,內(nèi)容如下
?? invalid.fieldvalue.age=age conversion error
?? (invalid.fieldvalue.age=\u5e74\u9f84\u4fe1\u606f\u8f93\u5165
???\u4e0d\u6b63\u786e)
3.類型轉(zhuǎn)換與輸入校驗的流程
(1)首先struts2對客戶端傳來的數(shù)據(jù)進行類型轉(zhuǎn)換
(2)類型轉(zhuǎn)換完畢后再進行輸入校驗
(3)如果類型轉(zhuǎn)換和輸入校驗都沒有錯誤發(fā)生,那么進入excute方法
?? (調(diào)用商業(yè)邏輯)
注意:如果類型轉(zhuǎn)換不成功,也同樣進行輸入校驗
4.當不同的邏輯調(diào)用同一個類中不同的方法時,應該對不同方法進行單獨
? 校驗,具體實現(xiàn)步驟如下:
? (1)在struts.xml中配置多個
???? <action name="register"
???? class="com.test.action.RegisterAction" method="abc">
?????? <result name="success">/success.jsp</result>
?????? <result name="input">/register2.jsp</result>
??? </action>
??? 調(diào)用不同的method
? (2)在action中寫多個validate方法
???? public void validateAbc(){}
??注意:當需要校驗excute方法時,用validateExcute方法來代替
??validate方法,避免任何一個方法校驗都會調(diào)用validate方法
? 控制臺打印信息如下:
??validateAbc() invoked
? validate~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
? abc method invoked
???
轉(zhuǎn)載于:https://blog.51cto.com/liuxiuqing/793819
總結(jié)
以上是生活随笔為你收集整理的Struts2输入校验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开利中央空调38VR020H109013
- 下一篇: 最新28个很棒的 jQuery 教程