zoukankan      html  css  js  c++  java
  • 【Struts】--Struts2校验框架

        在程序运行中,为保证安全正确运行,我们需要对数据进行一些校验,包括在服务端和客户端进行验证。在Struts2中提供了一种校验框架,可以进行简单有效的基本校验。校验框架分为两种:字段优先和校验器优先校验器。

        首先进行基本的配置和页面设置:

        jsp页面:register.jsp注册    

    <%@ page language="java" contentType="text/html; charset=GB18030"
        pageEncoding="GB18030"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>Insert title here</title>
    </head>
    <body>
        <!-- 接收错误提示 -->
    	<s:fielderror></s:fielderror>
    	<!-- form表单提交数据 -->  
    	<s:form action="register.action"  theme="simple">
     		 用户名:<s:textfield name="username" label="username"></s:textfield><br>
      		密码:<s:password label="password" name="password"></s:password><br>
      		确认密码:<s:password label="password" name="repassword"></s:password><br>
      		年龄:<s:textfield label="age" name="age"></s:textfield><br>
      		出生日期:<s:textfield label="birthday" name="birthday"></s:textfield><br>
      		<s:submit value="提交"></s:submit>
     	 </s:form>
    </body>
    </html>


        注册的Java Action类:RegisterAction.java     

    <span style="font-size:18px;">package Struts2;
    
    import java.util.Date;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class RegisterAction extends ActionSupport {
      private String username;
      private String password;
      private String repassword;
      private int age;
      private Date birthday;
      
      @Override
    	public String execute() throws Exception {
    	  return SUCCESS;
    	}
      
    public String getUsername() {
    	return username;
    }
    public void setUsername(String username) {
    	this.username = username;
    }
    public String getPassword() {
    	return password;
    }
    public void setPassword(String password) {
    	this.password = password;
    }
    public String getRepassword() {
    	return repassword;
    }
    public void setRepassword(String repassword) {
    	this.repassword = repassword;
    }
    public int getAge() {
    	return age;
    }
    public void setAge(int age) {
    	this.age = age;
    }
    public Date getBirthday() {
    	return birthday;
    }
    public void setBirthday(Date birthday) {
    	this.birthday = birthday;
    } 
      
    }
    </span>

        Struts配置:Struts.xml   

    <?xml version="1.0" encoding="UTF-8" ?>
    
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
        
    <struts>
      <package name="struts2"  extends="struts-default">
        <action name="register" class="Struts2.RegisterAction">
        <!-- 注册成功转向成功页面 -->
          <result name="success">/registerSuccess.jsp</result>
          <!-- 注册失败则回到注册页面 -->
          <result name="input">/register.jsp</result>
        </action>
      </package>
    </struts>
    
    
    

        完成上述配置和基本的页面设置之后,还需要建立我们的校验器文件,实质上就是xml文件。命名规则是:校验的Action+“-”+validation.xml,如本次的命名为:RegisterAction-validation.xml,文件与Action放在同一目录下

        字段优先校验器:      

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" 
      "http://struts.apache.org/xwork/xwork-validator-1.0.2.dtd">
    
    <validators>
      <!-- 字段优先校验器 -->
      <!-- 对username进行校验,此处的username对应属性驱动中的get和set对应的名 -->
      <field name="username">
         <!-- 校验username是否为空 -->
         <field-validator type="requiredstring">
           <message>用户名不能为空</message>
         </field-validator> 
         <!-- 校验username长度范围 -->
         <field-validator type="stringlength">
             <param name="maxLength">6</param>
             <param name="minLength">4</param>
             <message>用户名长度在4-6之间</message>
         </field-validator>    
      </field>
      
    </validators>
        

        到此,配置完毕(web.xml的配置就不再叙述)。运行的效果如下:

                   

         校验器优先:仍然是在RegisterAction-validation.xml中进行配置     

    <!-- 校验器优先校验器 -->
      <validator type="requiredstring">
        <param name="fieldName">username</param>
        <message>用户名不能为空</message>
      </validator>
      <validator type="stringlength">
    		<param name="fieldName">username</param>
    		<param name="minLength">4</param>
    		<param name="maxLength">6</param>
    		<message>用户名长度在4-6之间</message>
      </validator>
        

        其效果跟字段优先校验一样,当然字段优先校验器与校验器校验两种方式还可以混合使用。


        通过对校验器的学习,让自己对Struts2框架的认识逐渐加深。同时对框架也有了进一步的认识,其实所谓的框架就是把我们常用的一些功能封装起来,在使用的时候能够实现简单灵活,并且能够实现可配置,可复用等。

           

  • 相关阅读:
    VMware虚拟机Mac OS X无法调整扩展硬盘大小,更新xcode时出现磁盘空间不足
    打包时Xcode报:此证书的签发者无效Missing iOS Distribution signing identity
    iPhone私有API
    Xcode真机调试中"There was an internal API error"错误解决方法
    用C#通过反射实现动态调用WebService 告别Web引用
    MySQL、PostgreSQL、Ingres r3、MaxDB等开源数据库的详细比较
    jQuery Mobile 移动开发中的日期插件Mobiscroll使用说明
    SQL Server 2008|2012 阻止保存要求重新创建表的更改
    SQL Server如何启用xp_cmdshell组件
    Windows平台下利用APM来做负载均衡方案
  • 原文地址:https://www.cnblogs.com/victor-grace/p/7253663.html
Copyright © 2011-2022 走看看