首页 > 代码库 > JavaEE----使用Struts2的输入校验之手动编码校验

JavaEE----使用Struts2的输入校验之手动编码校验

Struts.xml

		<action name="login" class="com.cug.demo04.LoginAction">
			<result>/demo04/success.jsp</result>
			<result name="input">/demo04/login.jsp</result>
		</action>
		
		<action name="login1" class="com.cug.demo04.LoginAction" method="login">
			<result>/demo04/success.jsp</result>
			<result name="input">/demo04/login.jsp</result>
		</action>
login.jsp
  <body>
  <s:fielderror></s:fielderror>
  <form action="${pageContext.request.contextPath}/login" method="post">
  	用户名:<input type="text" name="username"><br/>
  	密码:<input type="password" name="password"><br/>
  	<input type="submit" value=http://www.mamicode.com/"登陆"/>>
package com.cug.demo04;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
	private String username;
	private String password;
		
	public void setUsername(String username) {
		this.username = username;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}

	@Override
	public void validate() {
		System.out.println("validate~");
		if(username==null || username.trim().isEmpty()){
			this.addFieldError("username", "用户名不能为空");
		}
		if(password==null || password.trim().isEmpty()){
			this.addFieldError("password", "密码不能为空");
		}else{
			if(password.length()<5 || password.length()>8){
				this.addFieldError("password", "密码的长度应该在5~8之间");
			}
		}
	}
	
	public String login(){
		return SUCCESS;
	}
	
	public void validateLogin(){
		System.out.println("validateLogin~");
	}
	
}

1、手动编码校验 
在Action类中 编写校验方法 
validate() 覆盖ActionSupport ------ 对Action 中所有执行方法 进行校验
* 通过<action> 配置 method属性,执行Action中特定的方法
validateXxx() Xxx就是指定方法名 -------- 对Action中指定方法 进行校验


校验方法执行过程
1)、 params 拦截器 设置请求参数
2)、 conversionError 拦截器 处理类型转换错误
3)、 validation 拦截进行参数有效性校验 
优先xml配置文件 、然后 validateXxx 具体方法校验 ,再然后 validate 所有方法执行校验 
4)、 workflow 拦截器 判断如果有错误信息 返回 input 如果没有错误信息 执行Action 对应业务处理方法 

技术分享



JavaEE----使用Struts2的输入校验之手动编码校验