大家在用struts時候,會用到兩種校驗
第一種:是以xml方式配置(基本上不用),所以不詳細說明
第二中:
package com.asiainfo.struts.action;
import com.asiainfo.struts.pojo.Group;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class ValidatorAction extends ActionSupport implements ModelDriven<Group>{
private Group group;
public String validator(){
return "success";
}
/* 驗證數據的合法性*/
public String validateModify(){
if("".equals(group.getGroupName())){
this.addFieldError("groupName", "不能爲空");
return "input";
}
if(group.getGroupNum()<0){
this.addFieldError("groupNum", "不能小於0");
return "input";
}
return "success";
}
public String modify(){
return "success";
}
public Group getGroup() {
return group;
}
public void setGroup(Group group) {
this.group = group;
}
public Group getModel() {
if(group==null){
group = new Group();
}
return group;
}
}
就是在某個方法執行前,方法名加上validate,就會先執行這個方法,到這裏可以做攔截,驗證數據的合法性
然後繼承ActionSupport的類,裏面就有addFieldError這個方法,就可以在裏面加入驗證的異常信息等等
struts.xml文件的配置:
<action name="*_*" class="com.asiainfo.struts.action.{1}Action" method="{2}">
<result>WEB-INF/{1}/{2}.jsp</result>
<result name="input">WEB-INF/{1}/validator.jsp</result>
<result name="redirect" type="redirect">Login_main.action</result>
</action>
界面:
<s:debug></s:debug>
<s:form action="Validator_modify.action" method="get">
<s:textfield label="組名" name="groupName"></s:textfield>
<s:textfield label="組人數" name="groupNum"></s:textfield>
<s:submit value="登陸"></s:submit>
</s:form>
這裏用的struts自帶的標籤,也可以不用這個,直接用原始標籤,但是,需要加入<s:fielderror></s:fielderror>
這樣才能將異常信息,展示在前臺
測試結果: