Struts2 Validate

1.自定义action继承ActionSupport

2.复写validate方法,因为ActionSupport实现了Validate这个借口,而这个借口中定义了validate方法

3.当请求时,先执行validate这个方法,然后再执行自己请求的方法

添加:<%@ taglib uri="/struts-tags" prefix="s" %>     引入struts2标签库

请求url

   		 <s:form action="validate/validateAction_testValidate.action" method="post">
   		 	<s:textfield name="username" label="用户名"></s:textfield>
   		 	<s:password name="password" label="密码"></s:password>
   		 	<s:submit></s:submit>
   		 </s:form>

struts.xml中配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<package name="validate" namespace="/validate" extends="struts-default">
		<action name="validateAction_*" class="com.struts2.validate.ValidateAction" method="{1}">
			<result>success.jsp</result>
			<result name="input">login.jsp</result>
		</action>
	</package>
</struts>

  

Action中的配置

package com.struts2.validate;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

//印证
public class ValidateAction extends ActionSupport {
	public String testValidate(){
		System.out.println("success");
		return SUCCESS;
	}

	//这个方法是执行印证的,如果验证有错误,则和配置文件result的name的值为input,这个是固定的
	//addFiledError中的第一个参数与页面上的name的值保持一致
	//struts2标签会把验证信息输出
	public void validate(){
		String username = ServletActionContext.getRequest().getParameter("username");
		String password = ServletActionContext.getRequest().getParameter("password");

		System.out.println(username+"---"+password);

		if("".equals(username))
			this.addFieldError("username", "用户名不能为空");//与输入的name值一样
		if("".equals(password)){
			this.addFieldError("password", "密码不能为空");//与输入的name值一样
		}
	}
}

  

时间: 2024-11-03 03:47:52

Struts2 Validate的相关文章

struts2 validate手动验证

我们前面学习struts2知道,struts2通过拦截器实现了一些验证操作. 比如,如果是不能转换的类型在action中接受的话会跳转到错误页面,错误信息中会包含对应的错误信息,例如: 首先我们了解一下错误信息的显示. 在页面上,我们显示错误信息,使用的是<s:fielderror>标签. <s:fielderror>默认遍历所有的错误信息. 如果指定了fieldName属性,就打印的是指定filedName对应的错误信息. 如果手动添加错误信息?如何实现验证? 在ActionSu

Struts2 validate校验

一般的,用户注册的时候,我们需要校验一些用户提交过来的参数. 一般有两道屏障,一是在前台页面上使用js进行验证,直接杜绝了不正常信息的提交.二是将提交过来的信息进行验证,不通过则返回注册页面并显示错误信息,我们这里介绍的就是在action中使用validate方法实现数据校验. action中是继承自ActionSupport类,ActionSupport实现了Validate接口,有一个空的validate方法. 在action中只需要重写一下validate方法就好了.运行程序的时候,会先执

struts2校验细节

使用struts2框架进行输入校验,主要步骤: ①准备实体类 package com.struts2.validate.entities; public class User { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge(

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

使用基于XML配置方式实现输入校验时,action也要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validate.xml,其中ActionClassName为简单类名,-validate为固定写法. 输入页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-

Struts2之手工编码方式进行输入校验

输入校验的流程 1.类型转换器对请求参数执行类型转换,并把转换后的值赋给action中的属性 2.如果在执行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext,conversionError拦截器将异常信息封装到fieldError里.不管类型转换是否出现异常,都会进入第3步. 3.系统通过反射技术先调用action中的validateXxx()方法,Xxx为方法名. 4.再调用action中的validate()方法 5.经过上面4步,如果系统中的fieldError存

struts2综合例子--------拦截器(登陆检查,日志记录),校验validate,

列表Action package he.action; import he.dao.UserDAO; import java.sql.SQLException; import java.util.LinkedList; import java.util.List; public class ListAction { private List<User> users = new LinkedList<User>(); public List<User> getUsers(

struts2(三)---struts2中的服务端数据验证框架validate

struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证. ActionSupport类提供了一个validate()方法,当我们需要在某一个action中进行数据验证时,可以重写这个方法.数据验证往往是在客户端向服务端提交表单信息时进行的,比如execute方法负责处理表单信息并返回相应的结果,在此之前,validate会先对提交的表单信息进行验证: ->验证通过:会执行execute的相应操作. ->验证失败: –>定义了失败后的re

struts2的validate在使用过程中的一个问题

在项目中有一个新增客户信息的的功能: 1.在进入添加页面:add.jsp页面之前,要调用一个add_init.do来获取省份信息列表以供在add.jsp进行选择. 2.add页面填写完成以后,提交给addCustomer.do来进行数据库的操作, 在提交之前,要进行一次表单验证,用了STRUTS2的validation. <!-- 客户添加初始化 --> <action name="customer_init" class="cn.rf.hz.parkass

Struts2输入校验之validate输入校验方式

一.在Web系统项目中有大量的视图页面需要用户自行输入很多数据.这些数据的类型有很多种.为了防止某些客户的恶意输入以及对Web项目的恶意破坏,必须引入输入校验,像Windows操作系统的防火墙一样把一些垃圾数据过滤掉,挡在Web系统之外.接下来就来介绍一下validate输入校验方式: 1.validate方法进行输入校验:这里直接附上一个简单的用户注册功能具体介绍利用validate方法对数字.字符串.日期等类型数据进行输入校验方式介绍: (1).首先,新建一个Struts2项目InputVa