zoukankan      html  css  js  c++  java
  • struts2学习(11)struts2验证框架1.验证简介、内置验证

    一、Struts2验证简介:

    二、struts2内置验证:

    下面例子,需求是:为用户注册进行验证;

    com.cy.model.User.java:

    package com.cy.model;
    
    public class User {
    
        private String userName;
        private String name;
        private int age;
        private String email;
        private String homePage;
        public String getUserName() {
            return userName;
        }
        public void setUserName(String userName) {
            this.userName = userName;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getHomePage() {
            return homePage;
        }
        public void setHomePage(String homePage) {
            this.homePage = homePage;
        }
        @Override
        public String toString() {
            return "User [userName=" + userName + ", name=" + name + ", age=" + age
                    + ", email=" + email + ", homePage=" + homePage + "]";
        }
        
        
    }
    View Code

    com.cy.action.RegisterAction.java:

    package com.cy.action;
    
    import com.cy.model.User;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class RegisterAction extends ActionSupport {
    
        private static final long serialVersionUID = 1L;
        
        private User user;
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    
        @Override
        public String execute() throws Exception {
            System.out.println("传入的用户" + user);
            return SUCCESS;
        }
        
    }
    View Code

    RegisterAction-validation.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <!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="user.userName">
            <field-validator type="requiredstring">
                <message>请输入用户名</message>
            </field-validator>
            <field-validator type="stringlength">
                <param name="minLength">6</param>
                <param name="maxLength">10</param>
                <message>用户名必须在${minLength}和${maxLength}之间</message>
            </field-validator>
        </field>
        
        <field name="user.name">
            <field-validator type="requiredstring">
                <message>请输入姓名</message>
            </field-validator>
        </field>
        
        <field name="user.age">
            <field-validator type="int">
                <param name="min">18</param>
                <message>年龄必须满18周岁</message>
            </field-validator>
        </field>
        
        <field name="user.email">
            <field-validator type="requiredstring">
                <message>请输入邮件</message>
            </field-validator>
            <field-validator type="email">
                <message>邮件格式不对</message>
            </field-validator>
        </field>
        
        <field name="user.homePage">
            <field-validator type="requiredstring">
                <message>请输入主页</message>
            </field-validator>
            <field-validator type="url">
                <message>主页格式不对</message>
            </field-validator>
        </field>
        
        <!-- 
            <![CDATA[xxxx]]>表示忽略里面的一些特殊的转义字符
         -->
        <validator type="expression">
            <param name="expression"><![CDATA[!user.name.equals(user.userName)]]></param>
            <message>用户名和真实姓名不能相同</message>
        </validator>
        
    </validators>
    View Code

    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="manage" extends="struts-default">
            <action name="registerAction" class="com.cy.action.RegisterAction">
                <!-- 如果验证失败的话,返回到register.jsp注册页面 -->
                <result name="input">register.jsp</result>
                <result name="success">success.jsp</result>
            </action>
        </package>
        
    </struts>

    register.jsp:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@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=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
      <!-- 这个作用就是表达式验证失败的错误信息,显示在这里。 -->
    <s:actionerror/> <s:form action="/registerAction" method="post"> <s:textfield name="user.userName" label="用户名"></s:textfield> <s:textfield name="user.name" label="真实姓名"></s:textfield> <s:textfield name="user.age" label="年龄"></s:textfield> <s:textfield name="user.email" label="邮件"></s:textfield> <s:textfield name="user.homePage" label="主页"></s:textfield> <s:submit value="注册"></s:submit> </s:form> </body> </html>

    success.jsp:

    <body>
    注册成功!
    </body>
    View Code

    测试:

    注册填写失败,提示信息:

    注册成功,console打印:

  • 相关阅读:
    【Codeforces】Codeforces Round #680 Div2
    PS1 长命令回到行首进行覆盖
    vue 跟路径加载缺少跟前缀
    Mac OS Virtualbox 倒入 ova 镜像文件
    笔记本电脑扩展屏幕或设备后不能播放声音
    git clone 后使用子分支
    laravel 环境自编译过程
    virtual Box centos7 公司网络环境下不能联网的解决方案
    CentOS7 php7 安装 curl 扩展
    CentOS 7 安装 Nodejs npm 及版本冲突解决
  • 原文地址:https://www.cnblogs.com/tenWood/p/7103894.html
Copyright © 2011-2022 走看看