• 【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框架的认识逐渐加深。同时对框架也有了进一步的认识,其实所谓的框架就是把我们常用的一些功能封装起来,在使用的时候能够实现简单灵活,并且能够实现可配置,可复用等。

           

  • 相关阅读:
    [题解]POJ_1417_(并查集背包
    [题解]POJ_2912_(带权并查集
    [题解]luogu_P1502_窗口的星星(扫描线
    [题解/模板]POJ_1733_Pairty game(带权并查集/扩展域
    [题解/模板]悬线法luogu_P1169_棋盘制作(悬线法
    [题解]luogu_P2059_卡牌游戏(状态设计/概率dp
    [题解]luogu_P2467_地精部落(思维dp
    「CJOJ2439」军队
    「LG2397」yyy loves Maths VI (mode)
    「LG2114」起床困难综合症
  • 原文地址:https://www.cnblogs.com/victor-grace/p/7253663.html
Copyright © 2020-2023  润新知