用户输入验证的集总


 1 一、用户输入验证
2 1、编程方式:
3 动作类中的所有方法进行验证:
4
5 步骤:
6 a、动作类继承ActionSupport
7 b、覆盖调用public void validate()方法
8 c、在validate方法中,编写不符合要求的代码判断,并调用父类的addFieldError(String fieldName,String errorMessage)
9 如果fieldError(存放错误信息的Map)有任何的元素,就是验证不通过,动作方法不会执行。
10 Struts2框架会返回到name=input的result
11 d、在name=input指定的页面上使用struts2的标签显示错误信息。<s:fielderror/>
12
13 动作类中指定的方法进行验证:
14 编写步骤与上面相同
15
16 验证方法书写有要求:
17 public void validateXxx() Xxx代表的是要验证的动作方法名,其中要把动作方法名的首字母变为大写。
18
19
20 2、基于XML配置文件的方式:
21 动作类中的所有方法进行验证:
22 在动作类的包中,建立一个名称为:动作简单类名-validation.xml ,比如要验证的动作类名是UserAction UserAction-validation.xml
23 内容如下:(不同的struts2版本可能不同,要根据情况去寻找)
       在xwork-core-2.3.16.3.jar下的xwork-validator-1.0.3.dtd文件中有定义的        

        <!--           XWork Validators DTD.           Used the
following DOCTYPE.

          <!DOCTYPE validators PUBLIC             "-//Apache
Struts//XWork Validator 1.0.3//EN"
          "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
           -->

          代替下面的老例子

24 <?xml version="1.0" encoding="UTF-8"?>
25 <!DOCTYPE validators PUBLIC
26 "-//OpenSymphony Group//XWork Validator 1.0.3//EN"
27 "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
28 <validators>
29 <field name="username">
30 <!-- 内置验证器都是定义好的,在xwork-core.jar com.opensymphony.xwork2.validator.validators包中的default.xml文件中 -->
31 <field-validator type="requiredstring"><!-- 不能为null或者""字符串,默认会去掉前后的空格 -->
32 <message>用户名不能为空</message>
33 </field-validator>
34 </field>
35 </validators>
36 动作类中指定的方法进行验证:
37 配置文件的名称书写有一定要求。
38 动作类名-动作名(配置文件中的动作名)-validation.xml
39 UserAction-user_add-validation.xml

<param name="字段名">内容</param>要去找对应的类名 看看它里面的setXXX()是什么
然后注入


 1 <?xml version="1.0" encoding="UTF-8"?>
2
3
4 <!DOCTYPE validators PUBLIC
5 "-//Apache Struts//XWork Validator 1.0.3//EN"
6 "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
7
8 <validators>
9 <validator type="requiredstring">
10 <param name="fieldName">name</param> 参数的寻找:针对com.opensymphony.xwork2.validator.validators包中的 default.xml中针对requiredstring寻找类,然后 看看setXxx()方法注入字段名针对name参数不能为空。
 11 <message>xml said username bu neng为空空啊啊</message> 12 </validator>
      两种方式等同
13 <field name="name">
14 <field-validator type="requiredstring">
15 <message>xml said username can not bu null</message>
16 </field-validator>
17 </field>
18
19 </validators>

但是有些地方只能用 validator ,用不了 field name= ,比如表达式

<validator type="expression">

  <param name="expression">

    maxNum>minNum

  </param>

</validator>

jsp页面用<s:actionerror/>输出的是动作错误

<s:fielderror/>输出的是字段错误

例子程序:

Validate.java


 1 import java.util.Date;
2
3 import org.apache.struts2.ServletActionContext;
4 import org.apache.struts2.dispatcher.mapper.ActionMapping;
5
6 import com.opensymphony.xwork2.ActionContext;
7 import com.opensymphony.xwork2.ActionSupport;
8
9 public class Validate extends ActionSupport {
10
11 private String name;
12 private String password;
13
14 public String getName() {
15 return name;
16 }
17
18 public void setName(String name) {
19 this.name = name;
20 }
21
22 public String getPassword() {
23 return password;
24 }
25
26 public void setPassword(String password) {
27 this.password = password;
28 }
29
30 public String display() {
31 System.out.println(name+" ffffffffffffffffffffffffffffffffffffffff "+password);
32 if(name==null||"".equals(name.trim()))
33 addFieldError("username", "用户不能为空啊啊");
34 if(password==null||password.matches("\\d{3,6}")==false)
35 addFieldError("password", "密码错了啊啊");
36 System.out.println(name+" 222222222 ffffffffffffffffffffffffffffffffffffffff "+password);
37 return SUCCESS;
38 }
39
40 public String execute()
41 {
42 System.out.println("has come to here");
43 return null;
44
45 }
46 }

Validate-validate_display-validation.xml


 1 <?xml version="1.0" encoding="UTF-8"?>
2
3
4 <!DOCTYPE validators PUBLIC
5 "-//Apache Struts//XWork Validator 1.0.3//EN"
6 "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
7
8 <validators>
9 <validator type="requiredstring">
10 <param name="fieldName">name</param>
11 <message>xml said username bu neng为空空啊啊</message>
12 </validator>
13 <!-- 等同于 -->
14 <field name="name">
15 <field-validator type="requiredstring">
16 <message>xml said username can not bu null</message>
17 </field-validator>
18 </field>
19
20 </validators>

struts.xml中


 1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
4 "http://struts.apache.org/dtds/struts-2.3.dtd">
5
6 <struts>
7 <constant name="struts.devMode" value="true" />
8 <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
9 <package name="mypackage" extends="struts-default">
10 <global-results>
11 <result name="error">/success.jsp</result>
12 </global-results>
13 </package>
14 <!-- <include file=""></include> -->
15
16 <package name="validate" namespace="/validate" extends="mypackage">
17 <action name="validate_*" class="cn.itcast.helloworldemo.Validate" method="{1}">
18 <result name="success">/success.jsp</result>
19 <result name="input">/submit.jsp</result>
20 </action>
21 </package>
22
23
24
25
26 <!-- Add packages here -->
27
28 </struts>

submit.jsp中


 1     <s:fielderror name="username"/>
2 <%-- <s:fielderror name="password"/> --%>
3 <form action="${pageContext.request.contextPath}/validate/validate_display" method="post">
4 <input type="text" name="name"> 姓名
5 <br/>
6 <input type="text" name="password">密码
7 <br/>
8 <input type="text" name="birthday">生日
9 <br/>
10 <input type="submit" >
11 </form>

用户输入验证的集总,布布扣,bubuko.com

时间: 2024-10-17 15:54:31

用户输入验证的集总的相关文章

struts2用户输入验证

一.用户输入验证 1.手工编程验证 动作类中的所有方法进行验证: 步骤: a.动作类继承ActionSupport b.覆盖调用public void validate()方法 c.在validate方法中,编写不符合要求的代码判断,并调用父类的addFieldError(String fieldName,String errorMessage) 如果fieldError(存放错误信息的Map)有任何的元素,就是验证不通过,动作方法不会执行. Struts2框架会返回到name=input的re

用户输入验证

这里我们来讨论 用户输入验证的两种方式:基于手工编程验证.基于Xml文件验证. 一.基于手工编程: 1.验证该动作类的所有方法: (1).在struts.xml中,创建相关的动作类,在书写标签的时候,记得把input这个返回值也写上,因为一旦在数据类型转换或者验证失败,都回转到input对应的结果处理.(这里为什么有类型转换?因为在许多Mvc框架中,类型转换和验证是不分家的,看struts2的拦截器加载顺序,是先类型转换器,然后是验证器,最后就是方法的调用,这个顺序就是说,当调用方法的前两个动作

用户输入验证【提升篇】

本页主要基于:长度验证.相等验证.非空验证.合法验证,调用实现功能. 1 //长度验证 2 private bool ValidateLength(String str,int minLength,int maxLength) 3 { 4 //判断是否大于规定的最小值和小于规定的最大值 5 if (str.Length <= maxLength && str.Length >= minLength) 6 { 7 return true; 8 } 9 else 10 { 11 r

struts标签解决用户输入验证的解决方案

首先新建 User测试类 package com.cx.verify; /** * Created by cxspace on 16-7-14. */ public class User { private String userName; private String pwd; private String email; public String getUserName() { return userName; } public void setUserName(String userNam

jsf服务器端验证用户输入

服务器端验证用户输入数据步骤 1 html页面上插入要输入数据控件 ? 1 2 3 4 <h:inputText size="10" value="#{commodityBean.foradd.name}"                         id="input1">                         <f:validator validatorId="input1Validator"

使用JavaScript验证用户输入的是否为正整数

在项目开发中,需要使用JavaScript验证用户输入的是否为正整数. 方法一: var type="^[0-9]*[1-9][0-9]*$"; var r=new RegExp(type); var flag=r.test(subjectHour.value); if(!flag){ alert("课时应为正整数"); subjectHour.focus(); return false; } 方法二: var type="^[0-9]*[1-9][0-9

完成一个登陆页面。(用户名:F11;密码:123456)。要求用户输入用户 名和密码,验证是否等于正确值。如果等于告知登陆成功,程序结束;否则告 知用户名密码有误。用户三次输入不正确,告知登陆失败,程序结束 。

#include <stdio.h>#include <string.h> /*完成一个登陆页面.(用户名:F11:密码:123456).要求用户输入用户名和密码,验证是否等于正确值.如果等于告知登陆成功,程序结束:否则告知用户名密码有误.用户三次输入不正确,告知登陆失败,程序结束 .*/ void main(){ char username[20]; char password[20]; int i = 0; for(i = 0; i < 3; i++) { printf(

SpringMVC使用Hibernate Validator验证用户输入

一 简介 SpringMVC支持与JSR 349 Bean Validation API的集成.借助于Bean验证,可以非常容易地将验证元数据应用到实体类,并且通过合适的视图向用户展示可能的错误结果.在模型类中可以通过注解对属性验证进行定义,常见的注解有:@Size ,@Email ,@Pattern,@Max等,分别验证长度,邮箱格式,自定义正则表达式,最大值(PS:更多相关注解可以百度或者查API) 二 测试实例 (1)新建一个动态Java web项目,然后下载"Hibernate Vali

Flex笔记_验证用户输入

内置验证器 Flex提供了很多内置的验证器,它们都是Validator类的子类. Flex以扩展Validator类的方式创建了内置验证器,以用于满足常用需求. Validator组件的重要属性和函数: enabled:Boolean类型,决定是否启用验证功能 required:Boolean类型,是否必填 requiredFieldError:String类型,设置显示给用户的消息 source:Object,设置想要验证的对象(组件) property:String,设置想要验证的对象属性