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="年龄字段类型错误"

  • 相关阅读:
    Something I know about WebDynpro
    Details about support package implementation
    CRM Middleware Performance Topics
    Way to configure the logon navigaion layouts via Business Roles in CRM
    DOM 常用节点类型和方法
    第一届 xdef 会议日程
    去除百度音乐盒广告的chrome插件 持续更新
    从人人网抓取高校数据信息,包括,省份 高校 院系 (提供最终SQL文件下载)
    PHP 与 JSON
    解决HTTPS 发送请求走socket问题
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4679873.html
Copyright © 2011-2022 走看看