struts2的校验可以用两种方式实现:
一、java代码实现:
以action类实现ActionSupport的方式实现代码校验,struts框架会调用重写的validate()方法对所有的action方法进行校验过滤。代码片段如下:
package test;
import com.opensymphony.xwork2.ActionSupport;
public class ValidateAction extends ActionSupport {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String test(){
return "success";
}
public String execute(){
return "success";
}
public void validate() {
// TODO Auto-generated method stub
if(id == null){
this.addFieldError("id", "id不能为空");
}
if(name == null || name.trim().length() == 0){
this.addFieldError("name", "name不能为空");
}
}
}
jsp页面片段如下:
<s:fielderror />
<form action="/validate.action">
<input type="text" name="id" /></br>
<input type="text" name="name" /></br>
<input type="submit" value="提交"/>
</form>
其中<s:fielderror />负责将validate()方法中的错误信息列表进行输出,这样就完成了整个验证流程。
如果仅仅只需要实现对execute()方法进行验证,那么只需要实现validateExecute()方法。框架会自动绑定execute()方法进行验证,其他方法则不进行验证。
二、xml配置文件实现:
xml的验证需要为action类建立对应的.xml配置文件,文件命名格式为ActionClassName-validation.xml。以前文所创建的类为例则需要建立ValidateAction-validation.xml文件。
配置文件如下:
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="id">
<field-validator type="requiredstring">
<message key="requiredstring"/>
</field-validator>
</field>
<field name="name">
<field-validator type="requiredstring">
<message key="requiredstring"/>
</field-validator>
</field>
</validators>
如上配置可以完成前文中validate()方法的实现,其他代码如jsp文件和struts.xml配置则完全相同。
如需实现对action中指定方法的xml校验则需要建立ActionClassName-ActionName-validation.xml的配置文件,其中ActonName为struts.xml中的action的名称。如:
<!-- 首先配置通配符实现url制定方法调用 -->
<action name="validate_*" class="test.ValidateAction" method="{1}">
<result name="success">/page/hello.jsp</result>
</action>
要对test()方法进行校验,校验的文件名则为:ValidateAction-validate_test-validation.xml
对execute()方法进行校验,校验的文件名则为:ValidateAction-validate_execute-validation.xml
这样变实现了对不同action 方法绑定校验。
分享到:
相关推荐
struts2对action中的所有方法进行校验
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
Struts2配置文件详解--精品版这个很好很强大
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
包含struts2-core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-...
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...
最新struts2-struts1-plugin-2.1.8.1.jar
Struts2-ActionError-ActionMessage-Example
struts2 最新漏洞 S2-016、S2-017修补方案 .docx
struts2-convention-plugin-2.3.32
struts2-config-browser-plugin-2.3.24.jar, struts2-core-2.3.24.jar, struts2-jasperreports-plugin-2.3.24.jar, struts2-jfreechart-plugin-2.3.24.jar, struts2-pell-multipart-plugin-2.3.24.jar, struts2-...
Struts2应用开发详解]_001.Struts2.2概述与MVC模式深度剖析
struts2-ssl-plugin-1.2.1.jar
struts2-dojo-plugin-2.3.4 jar 日期控件的jar包 需要的自行下载
struts2-json-plugin,Struts JSON插件
struts2-dojo-plugin-2.2.1.jar, 直接导入到Struts2项目里即可,注意版本。
struts2-convention-plugin-2.3.24.1
struts2-convention-plugin-2.3.15.1.jar
本光盘是《整合Struts+Hibernate+Spring应用开发详解》一书的配书光盘,书中的代码按章存放, 即第二章所使用的代码放在codes文件夹的02文件夹下,依次类推。 本光盘根目录下有11个文件夹,其内容和含义说明如下: ...
本补丁是针对 struts2-core-2.0.11.jar 的修改, 把文件中 bin下的文件直接copy到 web-inf/classes下, 重启web server, 就可解决问题(代码修改采用 jason.zhou 的方案, 做了一点改动), 源码在压缩文件的src目录下