struts2--使用validate()验证

表单验证:


通过validate()方法来验证输入数据格式的正确性,需要实现ActionSupport类

登录界面:

  <body>
    <s:form action = "login" method = "post">
      <s:textfield name = "username" label = "用户名"/>
      <s:password name = "password" label = "密码"/>
      <s:textfield name = "age" label = "年龄"/>
      <s:submit value = "验证"/>
     </s:form>
  </body>

LoginAction:

package com.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
  private String username ;
  private String password ;
  private int age ;
  
  public void validate() {
	  if("".equals(username) || username.length()>6){
		  addFieldError("username", "用户名格式不正确");
	  }
	  if("".equals(password) || password.length()<6){
		  addFieldError("password", "用户名密码不正确");
	  }
	  if(age<0 || age >200){
		  addFieldError("age", "年龄在0~200之间");
	  }
  }
  
  
  public String execute() {
	return SUCCESS;
}

public String getUsername() {
	return username;
}
public void setUsername(String username) {
	this.username = username;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}
  
}

在方法execute()方法执行之前,struts框架会自动调用validate()验证方法,如果出现不匹配的类型,则将信息填入Fielderror并返回"login"逻辑视图。

当然Action中很多时候不止execute()一个方法,所以,当需要在特定的方法前进行数据验证,则需要validateXxx(), 其中Xxx为方法名。如可在Action中设置如下


  public void validateLogin() {
	  if("".equals(password) || password.length()!=6){
		  addFieldError("password", "密码必须为六位");
	  }
}
  
  public String login() {
	return SUCCESS;
}
struts.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
  <package name="default" namespace = "/" extends = "struts-default">
    <action name = "login" class = "com.action.LoginAction" method = "login">
       <result>/ok.jsp</result>
       <result name = "input">/index.jsp</result>
    </action>
  </package>
</struts>

有了validateXxx()方法后,validate方法仍会执行,只不过在validateXxx()之后执行


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值