zoukankan      html  css  js  c++  java
  • 初学structs2,表单验证

    一、简单表单验证示例

    structs.xml配置

    <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标签也能显示,如下面注释中代码

    <%@ 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方法中

      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元素时,自定义出现类型错误的显示信息

    比如<s:textfield name="age" label="年龄"></s:textfield>,后台年龄字段为整数类型,如果填写成了字符类型,则会报错“Invalid field value for field "age"”;

    自定义提示错误信息的方式就是在相应的Action包下,新建相应action名称命名的properties文件,文件内制定对应字段及其错误信息,示例如下

    ValidateDemo.properties文件,内容invalidate.fieldvalue.age="年龄字段类型错误"

  • 相关阅读:
    一个datagrid中嵌入checkBox典型的例子
    堆排序算法
    堆排序(利用最大堆)
    动态代理模式的实现
    [转载]C#如何实现对外部程序的动态调用
    9.Jmeter 多个threadgroup 中的配置元件会一次性进行初始化
    二十七。
    三十。接口2
    三十三。日志
    大道至简读后感
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4679873.html
Copyright © 2011-2022 走看看