您的位置:首页 > 编程语言 > Java开发

复习struts2之基于XML配置方式实现对action的所有方法进行校验

2012-05-29 14:36 931 查看
使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml,其中ActionClassName为action的简单类名,-validation为固定写法。如果Action类为HelloWordAction,那么该文件的取名应为:HelloWordAction-validation.xml
实例:
HelloWord.java
定义两个属性
private String username;
private String mobile;
在此省略上面两个属性的set和get方法
public String update(){
ActionContext.getContext().put("message", "更新成功");
return "success";
}
public String save(){
ActionContext.getContext().put("message", "保存成功");
return "success";
}
HelloWordAction-validation.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<!--必填字符串-->
<field-validator type="requiredstring">
<!--去掉字符串的前后空格,默认就是true-->
<param name="trim">true</param>
<!--校验失败时输出的信息-->
<message>用户名不能为空!</message>
</field-validator>
</field>
<field name="mobile">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>手机号不能为空!</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
</validators>
在struts.xml文件中配置(要配置input视图)
<action name="helloword" class="cn.itcast.action.HelloWordAction" method="update">
<result name="input">/index.jsp</result>
<result name="success">/WEB-INF/page/message.jsp</result>
</action>
Index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>输入校验</title>
</head>
<body>
<!-- 用于显示错误信息 -->
<s:fielderror/>
<form action="${pageContext.request.contextPath }/test/helloword.do
" method="post">
用户名:<input type="text" name="username"/><br/>
<!-- 生日:<input type="text" name="birth"/><br/> -->
手机号:<input type="text" name="mobile"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
message.jsp
${message}
对HelloWordAction-validation.xml中的某些字段进行分析:
<field>指定action中要校验的属性,<field-validator>指定校验器,上面指定的校验器requiredstring是由系统提供的,系统提供了能满足大部分验证需求的校验器,这些校验器的定义可以在xwork-2.x.jar中的com.opensymphony.xwork2.validator.validators下的default.xml中找到。
<message>为校验失败后的提示信息,如果需要国际化,可以为message指定key属性,key的值为资源文件中的key。
在这个校验文件中,对action中字符串类型的username属性进行验证,首先要求调用trim()方法去掉空格,然后判断用户名是否为空。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐