• Struts2 语法--验证方式:


    第一种方式: 重写validation方法,

    ====验证action中所有的方法:

    1. 在UserAction1里重写validation:

     @Override
    	public void validate() {
    		// TODO Auto-generated method stub
    		if(user.getUsername().trim().equals("")||user.getUsername()==null){
    			this.addFieldError("username_error", "用户名不能为空");
    		}
    		if(user.getPassword().length()<4||user.getPassword().length()>6){
    			this.addFieldError("password_error","密码必须为4~6位");
    		}
    		String check = "^([a-z0-9A-Z]+[-|_|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$";
    		Pattern regex = Pattern.compile(check);
    		Matcher matcher = regex.matcher(user.getEmail());
    		if(!matcher.matches()){
    			this.addFieldError("email_error", "电子邮箱格式不正确");
    		}
    		super.validate();
    	}
    

      

    2. struts文件的设置,需要增加input的result name,写在当前action name下

    <result name="input">/login.jsp</result>
    

      

    3. jsp文件里的显示:

    //前面加上标签使用库
    <%@taglib uri="/struts-tags" prefix="s" %>


    <s:fielderror cssStyle="color:red"/> //显示错误信息
    <form name="loginForm" action="<%=path%>/login.action" method="post">
    <br><input type="button" value="登录1" onclick="javascript:document.loginForm.action='<%=path%>/user/login1.action';document.loginForm.submit();"/>
    <br><input type="button" value="登录2" onclick="javascript:document.loginForm.action='<%=path%>/user/login2.action';document.loginForm.submit();"/>

    <br><input type="button" value="登录3" onclick="javascript:document.loginForm.action='<%=path%>/user/login3.action';document.loginForm.submit();"/>

    <br><input type="button" value="登录4" onclick="javascript:document.loginForm.action='<%=path%>/user/login4.action';document.loginForm.submit();"/> <br>

    ====部分方法验证:

    1. 在UsersAction3.java里加入:

     public void validateAdd(){
    		 if(user.getEmail()==null||user.getEmail().trim().equals("")){
    			 this.addFieldError("email_error","电子邮箱不能为空");
    		 }
    }

    2.  需要给方法处理所在的action 配置result name:

     <result name="input">/login_success.jsp</result> 
    

    3. 在login_success.jsp里显示错误信息:

    <s:fielderror cssStyle="color:red"/>
    

    输入用户名和密码, 邮箱为空,验证

    ====validation方法重写+XML结合验证:

    1. 在UsersAction3.java里全部验证

     public void validate(){
    		 if(user.getEmail()==null||user.getEmail().trim().equals("")){
    			 this.addFieldError("email_error","电子邮箱格式不正确");
    		 }
    }
    

      

    2. xml配置:

     <interceptor-ref name="defaultStack"> 
         <param name="validation.includeMethods">add,delete</param>
     </interceptor-ref>
    

    由于是全部验证, 所以应该是所有add,delete,modify都会验证,但是由于添加了xml的配置, 所以只有add,delete进行验证, modify被过滤掉了,不会进行验证.  

      

    第二种方式:XML文档方式: UsersAction.java同包里加入一个文件UsersAction2-validation.xml:

    <!DOCTYPE validators PUBLIC 
            "-//Apache Struts//XWork Validator 1.0.2//EN" 
            "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
    <validators>
    	<field name="username">
    		<field-validator type="requiredstring">
    			<message>
    				用户名不能为空
    			</message>
    		</field-validator>
    	</field>
    	
    	<field name="password">
    		<field-validator type="requiredstring">
    			<message>
    				密码不能为空
    			</message>
    		</field-validator>
    		<field-validator type="stringlength">
    			<param name="minLength">4</param>
    			<param name="maxLength">6</param>
    			<message>密码必须是4~6位</message>
    		</field-validator>
    	</field>
    	
    	<field name="email">
    		<field-validator type="requiredstring">
    			<message>
    				邮箱名不能为空
    			</message>
    		</field-validator>
    		<field-validator type="email">
    			<message>邮箱格式不正确</message>
    		</field-validator>
    	</field>
    </validators>
    

     

    第三种方式:Annotation注解方式:

    在UsersAction3.java里全部验证后, 对单独的方法前面加上:

    @SkipValidation

    @SkipValidation
    	public String delete(){
    		System.out.println("删除");
    		return SUCCESS;
    	}
    

    如果从上面延续下来的话,那么add验证, delete不会验证.

    @SkipValidation的意思理解就是: 抢到return result的权利用户名不能为空密码不能为空46 密码为4~6位 电子邮箱不能为空 电子邮箱格式不正确 自动还显示当前login.jsp界面: jsp文件里的显示: 第3种方式: :Annotation: action里全部验证格式: public void validate(){ if(user.getEmail()==null||user.getEmail().trim().equals("")){ this.addFieldError("email","电子邮箱不能为空"); } } 但是在add, delete,modify,execute等方法前面写上@SkipValidation 就可以跳过验证 @SkipValidation的意思理解就是: 抢到return result的权利

  • 相关阅读:
    jmeter根据负载量计算并发用户数实例
    学生指导——德育
    命令行模式(非GUI模式)下执行jmeter,生成HTML性能测试报告,自定义线程数;
    jmeter 测试某系统5分钟内能完成5000笔查询业务,且90%的响应时间不超过3s,并求出需要设置的线程数
    jmeter 测试某网页最大并发用户数;
    ZOJ 3213
    POJ 2411 插头DP
    滑雪(ski)
    Puzzles
    Lorenzo Von Matterhorn
  • 原文地址:https://www.cnblogs.com/wujixing/p/5183016.html
Copyright © 2020-2023  润新知