Struts2之基于XML方式进行数据输入校验

使用基于XML配置方式实现输入校验时,action也要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validate.xml,其中ActionClassName为简单类名,-validate为固定写法。

输入页面index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>输入校验</title>
</head>

<body>
    <s:fielderror/>
	<form action="${pageContext.request.contextPath}/control/manage_save.action" method="post">
		管理用户名:<input type="text" name="username" />不能为空<br>
		手机号码:<input type="text" name="mobilephone" /> 不能为空,并且要符合手机号码格式1,3/5/8,后面9位数字<br>
			<input type="submit" value="提交" />
	</form>
</body>
</html>
package struts2.validate.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class PersonAction extends ActionSupport{

	private String username;
	private String mobilephone;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getMobilephone() {
		return mobilephone;
	}

	public void setMobilephone(String mobilephone) {
		this.mobilephone = mobilephone;
	}

	public String update() {
		ActionContext.getContext().put("message", "更新成功!");
		return "message";
	}

	public String save() {
		ActionContext.getContext().put("message", "保存成功");
		return "message";
	}
}

校验文件PersonAction-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">
			<param name="trim">true</param>
			<message>用户名不能为空!</message>
		</field-validator>
	</field>
	<field name="mobilephone">
		<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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
         "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<package name="csdn" namespace="/control" extends="struts-default">
        <action name="manage_*" class="struts2.validate.action.PersonAction" method="{1}">
           <result name="message">/WEB-INF/page/message.jsp</result>
           <result name="input">/index.jsp</result>
        </action>
	</package>
</struts>
时间: 2024-10-14 22:16:36

Struts2之基于XML方式进行数据输入校验的相关文章

xml方式封装数据方法

1.xml方式封装数据方法 2.demo <?php xml方式封装数据方法 /** * [xmlEncode description] * @param [type] $code [description] * @param [type] $message [description] * @param array $data [description] * @return [type] [description] */ public static function xmlEncode($cod

struts2对action中的方法进行输入校验---xml配置方式(3)

上面两篇文章已经介绍了通过编码java代码的方式实现action方法校验,这里我们介绍另外一种方式:xml配置文件 首先我们来看一个例子: ValidateAction.java: package com.itheima.action; import com.opensymphony.xwork2.ActionSupport; public class ValidateAction extends ActionSupport { private String username; private

Spring基于XML方式的使用

一.IoC配置 IoC的配置是通过Spring的xml文件的bean标签进行的. 1.bean标签介绍 bean标签一般是在xml文件进行配置的,xml文件一般样式如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.or

struts2学习笔记之十五(输入校验)

输入校验 输入校验和类型转换相辅相成 提交String请求参数,首先是类型转换,再次验证数据的合理性,然后进一步处理 分为客户端校验和服务器校验 客户端:js代码 服务器校验:java代码 客户端校验不能阻止恶意行为,决不能代替服务器校验 客户端也必不可少,由于大部分的浏览行为是正常行为,这样可以降低服务器的负担 两者必不可少. struts2的输入校验完全是模块化的方式 需要检验哪个Action 1.继承ActionSupport类 2.为该Action增加校验规则文件 --struts2会自

struts2对action中的方法进行输入校验(2)

struts2输入校验流程: 1.类型转换器对请求参数执行类型转换,并把转换后的值赋给aciton中的属性 2.如果在执行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext, conversionError拦截器将异常信息添加到fieldErrors里,不管类型转换是否出现异常,都会进入第三步 3.系统通过反射技术先调用action的validateXXX方法 4.再调用aciton中的validate方法 5.经过上述的4步,如果系统中的fieldErrors存在错误信

struts2对action中的方法进行输入校验

有时我们需要对Action中注入的字段进行校验,这时我们就需要用到invidate()方法了. 首先需要Action实现ActionSupport,然后重写invidate()方法,在其中对字段进行校验. 如果校验合法,则执行action中的相应方法(一般为execute),请求转发到相应的jsp: 如果校验失败,可以通过addFieldError()方法将错误信息添加到FieldErrors中, 此时action中的相应方法(一般为execute)不会执行,struts2框架默认返回"inpu

Struts2输入校验(编码方式)

struts2对用户输入数据的校验方法有两种方式,一种是通过编码的方式,另一种则是通过使用XML配置方式. 本章主要介绍struts2编码方式的输入校验.以下将结合一个实例程序进行说明. 代码结构: 关键代码: RegistAction.javapackage com.alfred.regist.action; import java.text.SimpleDateFormat; import java.util.Date; import com.opensymphony.xwork2.Acti

Spring 基于xml配置方式的事务

参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为为每个字段提供一个setXxx()方法 最后就是配置applicationContext.xml文件了.内容如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http:/

Spring 基于xml配置方式的事务(14)

参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为为每个字段提供一个setXxx()方法 最后就是配置applicationContext.xml文件了.内容如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http:/