今天看视频教程里面数据校验,看过后觉得挺复杂的,里面的环节确实很麻烦,不知道有没有一个很好的框架,虽然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>
不过系统的提示是用与开发人员,真正用户看到没有用处,需要把系统提示改为自定义的提示,等我看完再总结.