`

5 Struts2输入校验(一)----validate方法-validateXxx方法

阅读更多

这是一种编码校验的方法, 我重写ActionSupport父类的validate方法来实现 .

Action执行时一定会执行validate方法, 若有不合格的输入 就调用 addFieldError("age", "年领应在0-200之间");方法.

1  login.jsp

 

 

HTML标签:

错误信息 :<s:fielderror ></s:fielderror>
<form action="login.action" method="post">
		用户名:<input type="text" name="username" value="${username}"/><br>		
		年 龄:<input type="text" name="age" value="${age}"/><br>
		生 日:<input type="text" name="birthday" value="${birthday}"/><br>
		点对象:<input type="text" name="point" value="${point}"/><br>
		<input type="submit" value="提交"/>
	</form>

 

struts2标签

<s:form action="login">
		<s:textfield name="username" label="用户名"></s:textfield>
		<s:textfield name="age" label="年 龄"></s:textfield>
		<s:textfield name="birthday" label="生 日"></s:textfield>
		<s:textfield name="point" label="点对象"></s:textfield>
		<s:submit></s:submit>	
	</s:form>

 2 LoginAction.java

package ssh.org.web;
import java.util.Date;
import java.util.List;
import ssh.org.util.Point;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport
{
	/**
	 * 
	 */
	private static final long	serialVersionUID	= 1L;
	private String				username;
	private int					age;
	private Date				birthday;
	private List<String>		aihao;
	@Override
	public String execute() throws Exception
	{
		return "success";
	}
	@Override
	public void validate()
	{
		if (age < 0 || 200 < age)
		{
			addFieldError("age", "年领应在0-200之间");
		}
	}
}

看上面的validate()方法,很简洁,因为少了类型转换,这个工作由Struts2内建的类型转换器把请求参数转换为所须要的类型. 

 

 

3 结果

 

 

 

------------------------------validateXxx() 方法-------------------------------------------
一个Action可以包含多个处理逻辑

 

 

public class UserAction extends ActionSupport
{
	private static final long	serialVersionUID	= 1L;
	private String				username;
	private int					age;
	private Date				birthday;
	private List<String>		aihao;
	public String addUser() throws Exception
	{
		//添加用户
		return "success";
	}
	public void validateAddUser()
	{
		if (null == username || "".equals(username))
		{
			addFieldError("username", "用户名不能为空");
		}
		System.out.println("validateAddUser() 验证方法 ");
	}
	public String getUserList()
	{
		//取得所有用户
		return "success";
	}
	public void validateGetUserList()
	{
		//验证方法略...
		System.out.println("validateAddUser() 验证方法 ");
	}
	// --测试用
	@Override
	public String execute() throws Exception
	{
		return "success";
	}
	@Override
	public void validate()
	{
		if (age < 0 || 200 < age)
		{
			addFieldError("age", "年领应在0-200之间");
		}
		System.out.println("~~~~~~基本~~~~~ ");
	}
}

 

上面的就有三个处理业务的方法 addUser(),getUserList(),execute()

addUser(),getUserList() 方法分别有 不同的验证 方法:validateAddUser(),validateGetUserList()   , 也就是validateXxx() 方法.

业务方法叫什么, 验证方法就叫validate+ 业务方法名(首字母大写)

这样, 在执行某个 业务方法,就会执行与它同名的验证方法,执行addUser()这前就会检查有没有validateAddUser()方法, 有就执行之.

---------------------------------------------

其实有了 addUser(),getUserList()  这两方法, execute()就可以不要, 但我为了说明一个 多个validate方法执行的顺序, 还是加上了.

不论执行  addUser()还是getUserList()  方法,validate()方法一定会执行, 这是我们不想要的, 有两解决方法:

1  不写 execute() , 也就不用写validate()方法

2  写 execute(),  把validate() 改名为validateExecute().

关于动态执行 Action中的某个方法, 我在以后讲, 会有例子.

 

 

 

 

  • 大小: 56.3 KB
分享到:
评论

相关推荐

    Struts2输入校验总结

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

    struts2输入校验总结

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

    Struts2的输入校验

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

    struts2输入校验

    本文将深入探讨Struts2中的输入校验机制,包括如何重写validate方法、使用验证框架、客户端验证以及国际化信息的利用。 ### 一、重写validate方法 在Struts2中,如果希望自定义输入校验逻辑,可以继承`...

    Struts2数据校验与国际化

    2. `validateXxx()` 方法校验:这种方式允许更细粒度的校验,每个Action类方法对应一个`validateXxx()`方法。例如,如果你有一个名为`saveUser()`的方法,可以创建`validateSaveUser()`方法,只对与该操作相关的字段...

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

    validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在validateXXX方法被调用后,依然会被调用 错误信息均保留在ArrayList中,谁先运行,谁的结果就排在前面 11...

    struts2入门实例1

    validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在validateXXX方法被调用后,依然会被调用 错误信息均保留在ArrayList中,谁先运行,谁的结果就排在前面 11...

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

    validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在validateXXX方法被调用后,依然会被调用 错误信息均保留在ArrayList中,谁先运行,谁的结果就排在前面 11...

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

    validateXXX方法校验得到的错误信息先显示出来,然后才是validate方法校验的字段错误信息 validate方法在validateXXX方法被调用后,依然会被调用 错误信息均保留在ArrayList中,谁先运行,谁的结果就排在前面 11...

    Java struts2 validate用户登录校验功能实现

    在本教程中,我们将深入探讨如何使用Struts2的`validate`方法实现用户登录的校验功能。 首先,我们来看一下环境配置。为了运行Struts2项目,你需要Eclipse IDE 4.3.2、Java JDK 1.7_45或更高版本,以及MySQL 5.0或...

    struts2笔记之校验表单信息

    在Struts2中,表单数据的校验是一个关键环节,用于确保用户提交的数据符合预期的格式和规则。本篇笔记将详细讲解Struts2中服务器端与客户端对表单数据的校验方式。 首先,Struts2提供了一系列内置的校验器,包括: ...

    struts2讲义_吴峻申

    8.1.2 validateXXX方法进行输入校验 153 8.2 利用配置文件进行输入校验方法说明 157 8.2.1 Struts2字段校验的配置文件形式 158 8.2.2 Struts2非字段校验的配置文件形式 161 8.2.3 Struts2输入校验出错信息的国际化...

    Struts2学习文档

    以上内容详细介绍了Struts2框架的核心组成部分和技术细节,包括Action的实现方式、Result的配置方法、模型驱动的概念、异常处理机制、类型转换的实现、输入校验的流程、拦截器的设计与应用以及日志记录的配置。...

    J2EE企业级项目开发-3期(KC007) 8.2 Struts之数据校验与国际化文档.doc

    Struts2作为一款强大的MVC框架,被广泛应用于J2EE企业级项目开发中,尤其在数据校验和国际化方面提供了高效便捷的支持。本节主要探讨Struts2在数据校验和国际化实施上的核心概念和技术。 首先,让我们回顾一下...

    Struts2表单验证

    Struts2是一个流行的Java web开发框架,其在处理用户表单数据时提供了强大的验证功能,确保输入的数据符合预期的格式和规则。本文将深入探讨Struts2的表单验证机制。 首先,Struts2的输入验证分为两种方式:手动...

    Struts框架

    ### Struts2框架中的输入校验与校验框架 #### 一、手动编写代码校验 在Struts2框架中,对于输入数据的校验可以通过手动编写代码来实现。这种方式适用于那些较为简单或者特定场景下的数据校验需求。 ##### 1.1 ...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_7_数据验证 共56页.pptx

    除了基本的手动编程和框架内置验证外,Struts2还支持更高级的数据验证用法,如自定义校验器和visitor校验器的应用方法等。 1. **自定义校验器**: - 可以通过扩展Struts2提供的校验器类来自定义验证规则。 - 适用...

    struts2总结第二章

    1. 手动编写代码校验,重写`validate()`方法或`validateXXX()`方法。 2. XML配置方式,创建`validation.xml`文件,定义字段验证规则。 通过以上步骤,我们可以利用Struts2的强大功能构建一个健壮的Web应用。无论是...

    数据校验1

    `&lt;interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"&gt;` 这一行配置表明Struts使用了`AnnotationValidationInterceptor`拦截器来进行数据校验,该...

    J2EE课堂小测试_答案

    Struts2的校验流程包括类型转换器负责转换类型、处理异常信息、调用内置校验规则进行校验、通过反射调用validateXXX()方法、调用Aciton类中的validate()方法、如果没有出现FieldError,则调用Action里处理用户请求的...

Global site tag (gtag.js) - Google Analytics