之前在项目中对于表单字段的验证,基本都是在action具体方法中,也没有用到struts的validate,如今进入新公司了,我感受有必要梳理一下前的作法。
这两天稍有空隙,对struts的验证框架使用进行了一些尝试总结,随后也打算对struts框架的各个方面都作一次比较详尽的开发级别的总结,方便未来的查看,避免因遗忘而致使的重复无谓的学习,网上有不少这方面资料,但我感受,只有本身总结提炼出来的,才会理解深入...
struts的验证能够有两种实现方式:
1.利用action名-validate.xml配置的方式。
2.在具体action中重写validate()方法。
首先看第一种(配置文件)代码示例:
jsp代码
javascript
validate.jsp
action代码:
html
ValidateTestAction.java
struts.xml配置:
java
struts.xml
验证框架的配置(action类名+validate-xml的文件,放置于com包中,struts2会自动找到它)
express
ValidateTestAction-validation.xml
<!--在struts2中已经实现了不少经常使用验证,能够根据须要选用:
apache
再看一下重写validate方法的代码实现
先区分一下几个不一样的概念:
this.addFieldError("key",message);
一旦不为空将会跳转到input,用<s:fielderror/>标签显示.能够指定fieldname(集合中得key)属性来达到分开显示指定的验证信息。
this.addActionError("");
一旦不为空将会跳转到input,用<s:actionerror/>标签显示.
this.addActionMessage("");
这个只是一个提示信息,在下文页面中用<s:actionmessage/>展现集合中得所有message。
jsp代码:
框架
overwritevalidate.jsp
java代码
jsp
OvenWriteValidateAction.java
struts.xml配置
ide
struts.xml
目前我有疑问的地方但愿与有经验的朋友交流一下:
1.一旦作了validate的验证。
那么因此流经这个action类的请求都将经历一次验证,而实际上在一个action类中我只有一个方法须要验证,这就增添了麻烦。
2.利用上文中的第一种方式实现,导致每次进入action以前又多读取一个xml文档,这样会不会致使效率的下降,若是有影响,那么程度如何。学习