当前位置: 首页 > news >正文

Struts2之校验

1.输入校验

错误提示页面

<%@ 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>
<s:if test="fieldErrors!=null">
<s:property value="fieldErrors['msg'][0]"/>
</s:if>
<s:debug></s:debug>
</body>
</html>

Action类

public class ValidateAction extends ActionSupport {

    
    private String age;
    
    public String getAge() {
        return age;
    }


    public void setAge(String age) {
        this.age = age;
    }


    public String execute() {
        
        
        System.out.println("execute()方法");
        
        
        return SUCCESS;
        
    }
    
    @Override
    public void validate() {
            
        System.out.println("validate()方法");
        
        //判断是否为数值型
        boolean isNum = age.matches("[0-9]+");
        
        if(Integer.parseInt(age)<=18||Integer.parseInt(age)>=60) {
            
            this.addFieldError("msg", "年龄必须是18-60之间!");
        }else {
            this.addFieldError("msg", "您输入的用户名不合法!");
        }
        
    }

}

struts.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="jiangwenwen" namespace="/" extends="struts-default">
    <action name="validate" class="cn.jiangwenwen.action.ValidateAction">
        <result>/index.jsp</result> 
        <result name="input">/index.jsp</result>
    </action>
</package>
</struts>

2.基于配置风格的校验

struts2%E6%A0%A1%E9%AA%8C%E5%99%A8.jpg

编写校验配置UserAction-loginAction-validation.xml,注意名字的组成,和Action放在同一个包下面

<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE validators PUBLIC
        "-//Apache Struts//XWork Validator 1.0.3//EN"
        "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
    <validators>
        <field name="username">
            <field-validator type="stringlength">
                <param name="minLength">6</param>
                <param name="maxLength">12</param>
                <message>长度只能在6-12位</message>
            </field-validator>
            <field-validator type="regex">
                <param name="regexExpression">
                <![CDATA[(^[^ ]{1,}$)]]>
                </param>
                <message>不能为空</message>
            </field-validator>
        </field>
        
        <field name="userpwd">
            <field-validator type="requiredstring">
                <message>密码不允许为空</message>
            </field-validator>
        
        </field>
    </validators>

编写struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="jiangwenwen" namespace="/" extends="struts-default">
    <action name="loginAction" class="cn.jiangwenwen.action.UserAction" method="login">
        <result name="input">/test.jsp</result> 
    </action>
</package>
</struts>

转载于:https://www.cnblogs.com/jiangwenwen1/p/9462723.html

相关文章:

  • python基础库
  • 逻辑回归最小二乘推导
  • Emgu-WPF 激光雷达研究-移动物体跟踪
  • 浅谈OSI七层模型之物理层
  • 详述 IntelliJ IDEA 插件的安装及使用方法
  • python3 之__str__
  • CentOS Peer's Certificate has expired 问题
  • Golang dep包管理器
  • iptables1
  • 完美Python入门基础知识点总结,看完你的Python就完全入门了!
  • canvas下雨特效
  • Confluence 6 为登录失败配置使用验证码
  • [Python设计模式] 第27章 正则表达式——解释器模式
  • springboot 使用 @Scheduled 注解实现任务调度 以及相关踩坑记录
  • centos虚拟机安装,配置静态ip可以访问网络
  • Angularjs之国际化
  • const let
  • ESLint简单操作
  • HTTP中GET与POST的区别 99%的错误认识
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • scrapy学习之路4(itemloder的使用)
  • Swoft 源码剖析 - 代码自动更新机制
  • vue中实现单选
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 我有几个粽子,和一个故事
  • 小程序button引导用户授权
  • 写给高年级小学生看的《Bash 指南》
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 赢得Docker挑战最佳实践
  • 用Canvas画一棵二叉树
  • 从如何停掉 Promise 链说起
  • #include
  • (编译到47%失败)to be deleted
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • [20181219]script使用小技巧.txt
  • [ACTF2020 新生赛]Upload 1
  • [BIZ] - 1.金融交易系统特点
  • [BUUCTF 2018]Online Tool(特详解)
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [C++] Windows中字符串函数的种类
  • [Flutter] extends、implements、mixin和 abstract、extension的使用介绍说明
  • [Intel Edison开发板] 05、Edison开发基于MRAA实现IO控制,特别是UART通信
  • [iphone-cocos2d]关于Loading的若干处理和讨论
  • [J2ME]url请求返回参数非法(java.lang.illegalArgument)
  • [Java性能剖析]Sun JDK基本性能剖析工具介绍
  • [leetcode]_Symmetric Tree
  • [Linux内存管理-分页机制]—把一个虚拟地址转换为物理地址
  • [one_demo_14]一个简单的easyui的demo
  • [ROS2] --- ROS diff ROS2
  • [Spring] Spring Boot 生态