初學structs2,表單驗證

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

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息