标签:配置结果 sage 页面 message required 完成 提示 struts erro
Action类继承了ActionSupport类,而该类实现了Action、Validateable、ValidationAware、TextProvider、LocaleProvider和Seriazbale接口。而其中Validatteable 接口定义了一个validateable()方法,只要在用户的Action中重写该方法就可以实现验证功能。
1 /** 2 *会在执行execute之前执行,对传入的数据进行检验 3 */ 4 @Override 5 public void validate() { 6 // 如果用户名为空,就把错误信息添加到Action 类的 fieldError 7 if (user.getUsername()==null||user.getUsername().trim().equals("")) { 8 addFieldError("user.username", "用户名必须填!"); 9 } 10 }
在类中定义了校验方法后,该方法会在执行系统的execute()方法执行之前执行,如果执行该方法之后Action类的fieldError中已将包含了数据校验错误信息,将把请求转发到input视图处。
1 <action name="StrutsDemo1" class="cn.itcast.struts2.action.StrutsDemo1"> 2 <!-- 配置结果页面的跳转 在Action 中根据不同的返回值配置不同的跳转页面 --> 3 <result name="success">/demo1/main.jsp</result> 4 <result name="input">login.jsp</result> 5 </action>
会在登录界面显示错误信息。
struts2提供了校验框架,只需要增加一个校验配置文件就可以完成对数据的校验。
命名格式:ActionName-validation.xml 其中ActionName就是需要校验的用户自定义的Action类的类名 ,且该文件应与Action位于同一路径,如果Action类中有多个方法,对应的struts.xml文件中就有多个Action配置,这时如果想对其中一个方法进行验证,命名应该为ActionName-name-calidation.xml,这里的name是在struts.xml中的Action属性里面的name。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 <validators> 6 <field name="user.username"> 7 <!-- 验证字符串不能为空 ,选项必填--> 8 <field-validator type="requiredstring"> 9 <!-- 去空格 --> 10 <param name="trim">true</param> 11 <!-- 错误提示信息 --> 12 <message>用户名必填</message> 13 </field-validator> 14 </field> 15 </validators>
其他整数校验器:
1 <!-- 验证字符串不能为空 ,选项必填--> 2 <field-validator type="requiredstring"> 3 <!-- 去空格 --> 4 <param name="trim">true</param> 5 <!-- 错误提示信息 --> 6 <message>用户名必填</message> 7 </field-validator> 8 9 <!-- 整数大小校验器 --> 10 <field-validator type="int"> 11 <param name="min">18</param> 12 <param name="max">100</param> 13 <message>必须在18和100之间</message> 14 </field-validator> 15 16 <!-- 日期校验器 --> 17 <field-validator type="date"> 18 <param name="min">1990-01-01</param> 19 <param name="max">2017-01-01</param> 20 <message>日期必须在1990-01-01到2017-01-01之间</message> 21 </field-validator> 22 23 <!-- 邮件地址校验器 --> 24 <field-validator type="email"> 25 <message>必须是有效的email地址</message> 26 </field-validator> 27 28 <!-- 网址地址校验器 --> 29 <field-validator type="url"> 30 <message>必须输入有效的网址</message> 31 </field-validator> 32 33 <!-- 字符串长度校验器 --> 34 <field-validator type="stringlength"> 35 <param name="minlength">6</param> 36 <param name="maxlength">20</param> 37 <message>字符长度必须在6到20之内</message> 38 </field-validator> 39 40 <!-- 正则表达式校验器 --> 41 <field-validator type="regex"> 42 <param name="expression"><![CDATA[(\d{6})]]></param> 43 <message>必须是6位的数字</message> 44 </field-validator> 45
标签:配置结果 sage 页面 message required 完成 提示 struts erro
原文地址:http://www.cnblogs.com/the-wang/p/7609123.html