1.数据的校验分成前台和后台两种方式: JavaScript可以在前台完成校验,但是这种方式主要是提升用户的体验,依然可以绕行至后台程序中。 后台的数据校验,在Servlet/Action中做数据的校验。 2.Struts2框架中数据校验的方法: 手动编码校验
配置文件校验
手动编码校验
配置文件校验1.编写Action接收请求参数,该Action必须继承ActionSupport类 public class UserAction extends ActionSupport implements ModelDriven<User> { private User user = new User(); @Override public User getModel() { return user; } public String register() { System.out.println("注册成功"); return SUCCESS; } } 因为校验的实现需要用到ActionSupport类中的一些方法,所以必须继承它。 2.重写validate()方法,使用addFieldError()方法添加错误信息 @Override public void validate() { if (user.getUsername().length() == 0) { addFieldError("usernameError", "用户名不能为空"); } if (user.getPassword().length() == 0) { addFieldError("passwordError", "密码不能为空"); } if (user.getAge() <= 0) { addFieldError("ageError", "年龄非法"); } } validate()方法是执行在其他方法(register)之前的,如果validate()中执行过addFieldError()方法,则不会再去执行后续方法(register),而是跳转到INPUT视图。 validate()方法会校验所在Action中的所有方法,如果想要校验指定方法,可以手动在Action中编写一个方法,方法名称是validate方法名称(),例如:validateRegister()。 3.配置INPUT视图 <action name="register" class="action.UserAction" method="register"> <result name="success">/index.jsp</result> <result name="input">/register.jsp</result> </action> input视图通常都是转发回到原页面。 4.完成JSP页面代码,使用<s:fielderror/>标签显示错误信息 <s:fielderror/> <form action="${ pageContext.request.contextPath }/user/register" method="post"> 姓名:<input type="text" name="username" /><br/> 密码:<input type="password" name="password" /><br/> 年龄:<input type="text" name="age" /><br/> <input type="submit" value="注册" /> </form> s标签是struts特有的标签,使用时需要导入标签库,导入方式与jstl相同。 <s:fielderror/>展示的是所有错误信息,如果想展示某个错误信息,可以使用标签内的fieldName属性指定,比如<s:fielderror fieldName="ageError"/> 代码校验不适用于大型项目,数据复杂时,开发量和维护量都会很大
1.编写Action接收请求参数,该Action必须继承ActionSupport类 public class UserAction extends ActionSupport implements ModelDriven<User> { private User user = new User(); @Override public User getModel() { return user; } public String register() { System.out.println("注册成功"); return SUCCESS; } } 因为校验的实现需要用到ActionSupport类中的一些方法,所以必须继承它。 2.配置INPUT视图 <action name="register" class="action.UserAction" method="register"> <result name="success">/index.jsp</result> <result name="input">/register.jsp</result> </action> input视图通常都是转发回到原页面。 3.编写校验规则xml文件UserAction-validation.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> <field name="username"> <field-validator type="requiredstring"> <message>用户名不能为空</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>用户名在6-10位之间</message> </field-validator> </field> <field name="password"> <field-validator type="requiredstring"> <message>密码不能为空</message> </field-validator> </field> </validators> 该配置文件必须与所校验的Action在同一包下,命名规则为:Action类名-validation.xml。 需要配置本地约束。 该校验器会校验对应Action中的所有方法,如果想要校验某个方法,则将配置文件名改为:Action类名-方法对应的访问路径-validation.xml,例如:UserAction-register-validation.xml。
Struts2的数据校验
最新推荐文章于 2019-04-05 23:05:01 发布