struts2中数据校验1

来源:互联网 发布:undefined index php 编辑:程序博客网 时间:2024/06/06 07:16

    今天看视频教程里面数据校验,看过后觉得挺复杂的,里面的环节确实很麻烦,不知道有没有一个很好的框架,虽然struts2里面有validate框架,不过还是觉得很不好用.

      先总结一下今天的收获:register.jsp

 <s:form action="regist">
  <s:textfield name="username" label="用户名"></s:textfield>
  <s:textfield name="password" label="密码"></s:textfield> 
  <s:textfield name="age" label="年龄"></s:textfield>
  <s:textfield name="birthday" label="生日"></s:textfield>
  <s:submit></s:submit>
  </s:form>

 

struts.xml

<action name="regist" class="fq.registerAction">
 <result>/welcome.jsp</result>
 <result name="input">/register.jsp</result>
 </action>

 

registerAction

public class registerAction extends ActionSupport {
 private String username;
 private String password;
 private int age;
 private Date birthday;
 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;
 }
 public Date getBirthday() {
  return birthday;
 }
 public void setBirthday(Date birthday) {
  this.birthday = birthday;
 }
 public String execute() throws Exception
 {
  return SUCCESS;
 }
 public void validate()
 {
  if(null==username || username.length()<6 ||username.length()>10)
  {
   this.addFieldError("username", "username is error");
  }
  if(age<1||age>150)
  {
   this.addFieldError("age","age is error");
  }
  if(null==birthday)
  {
   this.addFieldError("birthday", "birthday is error");
  }
 }
}

首先进行数据转换,比方如果年龄里面输入的不是数字,struts2会自动提示Invalid field value for field "age".如果birthday不是日期也会提示错误的.

说明框架是先校验数据转换,然后会在validate方法里面校验数据.页面里面并没有显示错误的代码,这样他会在   this.addFieldError("age","age is error"); age属性的上面显示错误,还有一种显示错误的方法是在页面写 <s:fielderror></s:fielderror>

不过系统的提示是用与开发人员,真正用户看到没有用处,需要把系统提示改为自定义的提示,等我看完再总结.

原创粉丝点击