在java变成中我们经常会见到表单验证的情况,那么 是不是所有的问题都需要用javascript脚本进行验证呢?
事实上,我们并不是所有的表单验证都需要用脚本 进行验证的 下面是struts2中 利用内部机制来实现的代码
ValidateAction类;
package action;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
public class ValidateAction extends ActionSupport {
private String name;
private String pass;
private int age;
private Date bitth;
@Override
public String execute() throws Exception {
return SUCCESS;
}
public String add() {
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBitth() {
return bitth;
}
public void setBitth(Date bitth) {
this.bitth = bitth;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空</message>
</field-validator>
</field>
</validators>
Struts.xml文件内容;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名不能为空</message>
</field-validator>
</field>
</validators>
Login表单;
<s:form action = "/hello/login">
<s:textfield name="name" label="用户名"/>
<s:textfield name="pass" label="密码"/>
<s:textfield name="age" label="年龄"/>
<s:textfield name="birth" label="生日"/>
<s:submit value="提交"/>
</s:form>
这样我们访问Login.jsp就 会出现一个表单 当我们将用户名以空提交时候,就会提示
"用户名不能为空"
同理 我们就会验证密码 年龄等文本框