`

4.Struts2的输入校验(validate方法)

阅读更多

Struts2框架

 

表单提交 --> 类型转换--> 输入校验

 

1.在类型转换的时候出现不能转换时,会跳转到<result name="input">所配的页面中。

错误信息的配置:

 a.全局配置:资源文件中配入如下代码:

xwork.default.invalid.fieldvalue={0} error

  b.局部配置:Action类名.properties

invalid.fieldvalue.userName=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A
invalid.fieldvalue.age=\u5E74\u9F84\u5FC5\u987B\u662F\u6570\u5B57
invalid.fieldvalue.birthday=\u751F\u65E5\u7684\u683C\u5F0F\u4E3A\uFF1A\u5E74-\u6708-\u65E5
 

2.在validate方法中对输入进行输入校验,如果一个类配了多个action的,那么在“validate + Action方法名”方法进行输入校验。

调用顺序是先调用“validate + Action方法名”方法,再调用validate方法

 

一、Action类

package com.tao.struts2.action;

import java.util.Calendar;
import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class ValidateAction extends ActionSupport {
	private String userName;
	private int age;
	private Date birthday;

	public String valis() throws Exception {
		return SUCCESS;
	}

	public void validateValis() {
		if (userName == null || this.userName.trim().equals("")
				|| this.userName.trim().length() > 16
				|| this.userName.trim().length() < 6) {
			this.addFieldError("userName",
					"userName required! and length is 6-10!");
		}
		if (age == 0 || age > 150 || age < 1) {
			this.addFieldError("age", "age required 1-150!");
		}

		if (birthday == null || Calendar.getInstance().before(birthday)) {
			this.addFieldError("birthday", "birhtday required before now!");
		}
		System.out.println("=======validateValis=======");
	}

	@Override
	public void validate() {
		super.validate();
		System.out.println("=======validate=======");
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

}
 
<?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="default" namespace="/user" extends="struts-default">
		<action name="valis" class="com.tao.struts2.action.ValidateAction"
			method="valis">
			<result name="input">/valis/register.jsp</result>
			<result name="success">/valis/success.jsp</result>
		</action>
	</package>
</struts>

 二、页面

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<html>
	<head>
		<title>Login</title>
	</head>
	<body>
		<s:actionerror/>
		<form action="${pageContext.request.contextPath }/user/valis.action" method="post">
			${errors.userName }
			名字: <input name="userName" type="text" /><br />
			${errors.age }
			年龄: <input name="age" type="text" /><br />
			${errors.birthday }
			生日: <input name="birthday" type="text" /><br />
			<input type="submit" value="提交" />
		</form>
		<span style="background:red;">
		</span>
	</body>
</html>

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

	<body>
		success
	</body>
</html>
 

 

 

 

分享到:
评论

相关推荐

    Struts2输入校验总结

    ### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...

    浪曦_Struts2应用开发系列_第5讲.Struts2的输入校验.rar

    - 深入理解Struts2的源码,特别是`ValidationInterceptor`和`Validator`类,可以帮助我们更好地掌握输入校验的工作原理和优化方法。 8. **示例实践** - `src`目录可能包含了示例代码,展示了如何在Action类中使用...

    struts2输入校验深入总结

    Struts2提供了多种方式进行输入校验,包括Action级别校验、拦截器级别校验以及基于Validator框架的校验。 二、Action级别校验 Action级别校验是在Action类中定义校验逻辑,通常通过在Action类的属性上添加注解实现...

    Struts2的输入校验

    此外,对于更复杂的校验规则,Struts2允许开发者通过覆盖Action类中的`validate()`方法或创建特定的`validateXxx()`方法来实现自定义校验。 在Struts2中,输入校验的流程如下: 1. 类型转换器:Struts2将接收到的...

    struts2输入校验总结

    Struts2是一个流行的Java web开发框架,它提供了一套强大的输入校验机制,确保用户提交的数据符合业务逻辑的要求。在本文中,我们将深入探讨Struts2的输入校验功能,包括手动输入校验和基于验证框架的输入校验。 ##...

    struts2的输入校验

    struts2的输入校验有两种方式: 一.重写validate()方式 二.采用配置文件的方式 先我们就以一个简单的登录的例子来讲解这个吧. 重点讲解下,第二个采用配置文件的方式: 1.添加一个xml的校验文件,保存在...

    使用struts2进行输入校验

    本篇文章将详细介绍如何在Struts2中进行输入校验,包括两种主要实现方式:使用Action中的`validate()`方法和使用XML文件。 1. 使用Action中的`validate()`方法: 在Struts2中,每个Action类都可以包含一个名为`...

    struts2中的输入校验

    如果业务逻辑方法没有指定的验证方法,Struts2会尝试使用`validate()`方法进行校验。 当需要避免`validate()`方法执行时,有两种策略: - 不重写`validate()`方法,但这会导致`execute()`方法无法被校验。 - 添加一...

    struts2学习笔记六(第6讲.Struts2的输入校验续一)

    在Struts2中,我们可以通过实现`validate()`方法或者使用Validation XML文件来定义验证规则。 在Struts2中,输入验证是通过Interceptor(拦截器)实现的。Interceptor是Struts2的核心特性之一,它们按预定义的顺序...

    Struts2的输入校验实例代码

    当用户提交表单时,Struts2会调用`validate`方法进行校验。如果校验失败,Struts2会自动重定向到`input`视图(即`register.jsp`),并在页面上显示错误信息(通过`s:fielderror`标签)。 6. **struts.xml配置**: ...

    struts2入门实例4 经典入门必备

    4.Struts2_03_TypeConverter3 把上面的局部的转换器改成全局的了 xwork-conversion.properties 5.Struts2_03_TypeConverter4 把前面的继承改成了strutstypeconverter了 6.Struts2_03_TypeConverter5 扩展...

    Struts2数据校验与国际化

    Struts2作为一款流行的Java Web框架,其在处理用户输入数据和实现多语言支持方面具有强大的功能。在“Struts2数据校验与国际化”这一主题中,我们将深入探讨Struts2如何通过不同的验证机制确保数据的有效性,以及...

    struts2入门实例2 经典入门必备

    4.Struts2_03_TypeConverter3 把上面的局部的转换器改成全局的了 xwork-conversion.properties 5.Struts2_03_TypeConverter4 把前面的继承改成了strutstypeconverter了 6.Struts2_03_TypeConverter5 扩展...

    struts2入门实例1

    4.Struts2_03_TypeConverter3 把上面的局部的转换器改成全局的了 xwork-conversion.properties 5.Struts2_03_TypeConverter4 把前面的继承改成了strutstypeconverter了 6.Struts2_03_TypeConverter5 扩展...

    struts2入门实例3 经典入门必备

    4.Struts2_03_TypeConverter3 把上面的局部的转换器改成全局的了 xwork-conversion.properties 5.Struts2_03_TypeConverter4 把前面的继承改成了strutstypeconverter了 6.Struts2_03_TypeConverter5 扩展...

    Struts2自定义校验框架

    然后在自定义校验器中重写`validate()`方法,实现具体的校验逻辑。 3. **配置自定义校验器** 配置自定义校验器有两种方式: - XML配置:在`struts.xml`或相应的Action配置文件中,使用`&lt;validators&gt;`标签定义...

    struts2 对action中的所有方法进行校验

    总的来说,Struts2提供了灵活且强大的数据校验机制,无论是在XML配置文件中定义,还是利用注解,甚至自定义校验逻辑,都能有效地保证Action中各个方法的输入数据合法,从而提高应用程序的稳定性和安全性。...

Global site tag (gtag.js) - Google Analytics