strut2 输入校验

struts2输入校验分为对action中的所有方法进行校验和对action中的指定方法进行校验。

校验方式有两种:手工校验和xml文件校验。

首先是手工校验:

  1. 输入表单如下:

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>输入校验</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
      </head>
    
      <body>
       <s:fielderror/>  ----显示错误信息
       <form action="${pageContext.request.contextPath}/person/manage_update.action" method="post">
               用户名:<input type="text" name="username"/>不能为空<br/>
               手机号:<input type="text" name="mobile"/>不能为空,并且要符合手机号的格式1,3/5/8,后面是9个数字<br/>
               <input type="submit" value="提 交"/></form>
      </body>
    </html>
  2. action中的代码:action中的代码需要重写validate方法,进行字段校验,具体代码如下

    package cn.itcast.action;
    
    import java.util.regex.Pattern;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class PersonAction extends ActionSupport{
        private String username;
        private String mobile;
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getMobile() {
            return mobile;
        }
        public void setMobile(String mobile) {
            this.mobile = mobile;
        }
    
        public String update(){
            ActionContext.getContext().put("message", "更新成功");
            return "message";
        }
    
        public String save(){
            ActionContext.getContext().put("message", "保存成功");
            return "message";
        }
    
        @Override
        public void validate() {//会对action中的所有方法校验
            if(this.username==null || "".equals(this.username.trim())){
                this.addFieldError("username", "用户名不能为空");
            }
            if(this.mobile==null || "".equals(this.mobile.trim())){
                this.addFieldError("mobile", "手机号不能为空");
            }else{
                if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile).matches()){
                    this.addFieldError("mobile", "手机号格式不正确");
                }
            }
        }
    
        public void validateUpdate() {//会对update()方法校验        if(this.username==null || "".equals(this.username.trim())){            this.addFieldError("username", "用户名不能为空");        }        if(this.mobile==null || "".equals(this.mobile.trim())){            this.addFieldError("mobile", "手机号不能为空");        }else{            if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.mobile).matches()){                this.addFieldError("mobile", "手机号格式不正确");            }        }    }
    
    }
  3. 在struts.xml配置文件中需要配置input视图:<result name="input">/index.jsp</result>用来返回错误信息的提示。
  4. 总结:在action中重写validate方法,这是对所有的方法进行校验,validate_*对特定方法进行校验。此外在struts.xml中还需要提供input视图。在input视图中显示错误信息使用标签<s:fielderror/> ----显示错误信息
时间: 2024-08-08 09:45:08

strut2 输入校验的相关文章

strut2 输入校验2

struts2基于xml配置方式对Action中的所有方法进行的输入校验: 使用xml方式配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下.文件的取名为ActionClassName-validation.xml,其中ActionClassName为action类的简单类名,validation为固定写法.如果Action类为cn.itcast.UsrAction,那么文件名为UserAction-validati

笔记:Struts2 输入校验

Struts2的输入校验包含了客户端校验和服务器端校验,通过编写校验规则文件来实现输入校验,需要增加 Convention 插件,将 struts2-convention-plugin-2.3.31.jar 复制到 WEB-INF/lib 目录中 校验规则文件 校验规则文件命名格式:ActionName-validation.xml,其中 ActionName 为校验的 Action名称,后面的 -validation.xml 为固定字符串,并将校验规则文件保持到 Action 相同的路径下 S

struts2(七)输入校验

输入校验简述 由于Web应用的开放性,网络上所有浏览者都能够自由地使用该应用,这样该应用通过输入页面收集的数据可能很复杂,不仅会包含正常用户的误输入,还可能包含恶意用户的恶意输入.因此应用系统需要将这些非法输入阻止在应用之外. 异常输入,可能导致系统非正常中断,严重者会导致系统崩溃.应用程序需要正常处理表现层接受的各种数据,通常的做法是遇到异常输入时应用程序直接返回,提示浏览者必须重新输入,也就是将那些异常输入过滤掉.绝对异常输入的过滤,就是输入校验,也称为数据校验. 输入校验分为客户端校验和服

Struts2输入校验(编码方式)

struts2对用户输入数据的校验方法有两种方式,一种是通过编码的方式,另一种则是通过使用XML配置方式. 本章主要介绍struts2编码方式的输入校验.以下将结合一个实例程序进行说明. 代码结构: 关键代码: RegistAction.javapackage com.alfred.regist.action; import java.text.SimpleDateFormat; import java.util.Date; import com.opensymphony.xwork2.Acti

Struts2输入校验(XML方式)

本章主要介绍struts2的XML配置方式输入校验.以下将结合一个实例程序进行说明. 代码结构: 关键代码: RegistAction.javapackage com.alfred.regist.action; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; public class RegistAction extends ActionSupport { private static final long

Struts2的输入校验

Struts2提供了基于验证框架的输入校验,在这种校验方式下,所有的输入校验只需要编写简单的配置文件,Struts2的验证框架将会负责进行服务器校验和客户端校验. 校验失败后将Struts2将自动返回名为“input”的Result,如需制定错误显示页面,则通过struts.xml来配置“input”的Result.在Result视图中使用<s:fielderror/>标签即可输入校验失败的提示信息. User.java package models; import java.util.Dat

Struts2之基于XML方式进行数据输入校验

使用基于XML配置方式实现输入校验时,action也要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validate.xml,其中ActionClassName为简单类名,-validate为固定写法. 输入页面index.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-

struts2学习笔记之十五(输入校验)

输入校验 输入校验和类型转换相辅相成 提交String请求参数,首先是类型转换,再次验证数据的合理性,然后进一步处理 分为客户端校验和服务器校验 客户端:js代码 服务器校验:java代码 客户端校验不能阻止恶意行为,决不能代替服务器校验 客户端也必不可少,由于大部分的浏览行为是正常行为,这样可以降低服务器的负担 两者必不可少. struts2的输入校验完全是模块化的方式 需要检验哪个Action 1.继承ActionSupport类 2.为该Action增加校验规则文件 --struts2会自

使用JavaScript实现简单的输入校验

HTML页面代码: 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="Generator" content="EditPlus®"> 6 <meta name="Author" content="">