1、簡單表單驗證示例前端
structs.xml配置jsp
<struts> <package name="validate" namespace="/validate" extends="struts-default" > <action name="ValidateDemo" class="cn.hjp.validate.ValidateDemo"> <result name="success" type="dispatcher" >/validate/index.jsp</result> <result name="input" type="dispatcher" >/validate/index.jsp</result> </action> </package> </struts>
前端index頁面部分代碼:fielderror顯示錯誤信息,若是前端頁面HTML標籤是使用的structs2標籤構成,則能夠不使用fielderror標籤也能顯示,以下面註釋中代碼ide
<%@ taglib prefix="s" uri="/struts-tags" %> <!-- <body> <s:form action="ValidateDemo" namespace="/validate" > <s:textfield name="name" label="用戶名" ></s:textfield> <s:submit value="提交" ></s:submit> </s:form> </body> --> <body> <form action="/struts2-demo/validate/ValidateDemo.action" method="post" > <input type="text" name="name" /><input type="submit" value="提交"/> </form> <s:fielderror fieldName="name" />
<s:actionerror/>
<s:actionmessage/>
</body>
驗證判斷代碼寫在validate方法中post
public class ValidateDemo extends ActionSupport { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String execute() throws Exception { // TODO Auto-generated method stub System.out.println(this.toString()); return SUCCESS; } @Override public void validate() { // TODO Auto-generated method stub
// 驗證字段 if (this.name == null || this.name.equals("")) { addFieldError("name", "姓名不能爲空"); }
//驗證的不是字段,沒有指定字段的驗證錯誤,也就是業務型錯誤,就根據狀況使用下面兩個,而前端頁面對應添加<s:actionerror/>和<s:actionmessage/>structs2標籤元素
addActionError("Action錯誤");//action錯誤
addActionMessage("提示信息");//提示信息
} }
使用structs2的標籤構造的HTML元素時,自定義出現類型錯誤的顯示信息this
好比<s:textfield name="age" label="年齡"></s:textfield>,後臺年齡字段爲整數類型,若是填寫成了字符類型,則會報錯「Invalid field value for field "age"」;spa
自定義提示錯誤信息的方式就是在相應的Action包下,新建相應action名稱命名的properties文件,文件內製定對應字段及其錯誤信息,示例以下code
ValidateDemo.properties文件,內容invalidate.fieldvalue.age="年齡字段類型錯誤"orm