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

使用基于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()方法去掉空格,然后判断用户名是否为空。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值