Struts2 Validate

Posted 下路派出所

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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值一样
		}
	}
}

  

以上是关于Struts2 Validate的主要内容,如果未能解决你的问题,请参考以下文章

Struts2输入校验

Struts2 Validate

Struts2中validate数据校验的两种常用方法

struts2标签s:form里的validate,我设置true或false,感觉没什么区别啊

struts2 validate手动验证

[Struts2学习笔记] -- 输入校验