Struts2利用验证框架实现数据验证(十一)上

简介: Struts2利用验证框架实现数据验证(十一)

数据验证,分为前端验证和后端验证。


前端验证主要是通过JavaScript和jQuery来实现,目的是: 减少客户等待的时间,减轻服务器端的压力,用户输入的错误数据,直接提示。


后端验证的目的是: 防止“绕过”客户端,提交非法数据。 在服务器端处理数据之前,确认数据的正确性。


这里只讲后端的验证。


在验证的时候,需要将提示信息展示给前端, Struts2框架提供了两种方式,进行提示信息。 addFieldError() 方法和 addActionError() 方法。


一. addFieldError() 方法和addActionError()方法


一.一 简单小提示


addFiledError(String name,String message) 添加字段范围内的具体的错误。


addActionError(String message) 在Action中添加具体的错误。


在Servlet开发阶段时,返回错误信息 通常用的是 request.setAttribute(“message”,“具体的错误信息”),


现在可以用addFieldError()来进行处理。


对于类中的错误,用addActionError()进行处理。


两者所反映的级别是不一样的. field为字段级别的,action为Action级别的。


一.二 提示错误小例子


一.二.一 编写验证 UserAction


package com.yjl.web.action;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author 两个蝴蝶飞
* @version 创建时间:Aug 30, 2018 8:21:09 PM
* User的验证类
*/
public class UserAction extends ActionSupport{
  private static final long serialVersionUID = 1L;
  /**
   * 用addFiledError()方法处理
   * 也是用key--value的形式进行展示的.
   */
  public String field(){
    this.addFieldError("nameErr","姓名只能是中文");
    this.addFieldError("sexErr","性别只能选择男或者女");
    this.addFieldError("passwordErr","密码错误");
    return SUCCESS;
  }
  /**
   *用 addActionError()方法处理。
   */
  public String action(){
    //通常只写一个错误提示 
    this.addActionError("第一个类中大错误");
    return SUCCESS;
  }
}


一.二.二 配置struts.xml文件


<!--修改ui样式表,不用这一个,用默认的 -->
<!--<constant name="struts.ui.theme" value="simple"></constant>-->
<package name="validate" extends="struts-default" namespace="/">
    <action name="User_*" class="com.yjl.web.action.UserAction" method="{1}">
        <result name="success">/WEB-INF/content/message.jsp</result>
    </action>
    <!-- 配置跳转页面 -->
    <action name="*">
      <result>/WEB-INF/content/{1}.jsp</result>
    </action>
</package>


一.二.三 编写 /content/message.jsp


<body>
<h3>显示Field错误</h3>
<!-- 会显示全部的错误 -->
<s:fielderror></s:fielderror>
<h3>显示单个错误</h3>
<s:fielderror>
  <!-- 只显示name的错误信息 -->
  <s:param>nameErr</s:param>
</s:fielderror>
<h3>显示Action错误</h3>
<s:actionerror/>
</body>


一.二.四 重启服务器,运行


输入网址: http://localhost:8080/Struts_Validate/User_field, 显示field 域错误:


20200419142007960.png


输入网址: http://localhost:8080/Struts_Validate/User_action, 显示action 域错误


20200419141925533.png


显示字段错误时,如用户名 name是否填写错误,密码 password是否填写错误,手机号 phone是否填写错误,通常会显示全部的错误信息。


故一般常用:


<s:fielderror></s:fielderror>


来直接显示所有字段的错误。


一.二.五 hasFieldErrors() 和 hasActionErrors() 进行判断显示


访问 filed 错误时,没有action 错误,但却将Action的提示语都显示出来了,


访问action 错误时,没有filed 错误,但却将 Field的提示语都 显示出来了。


常常需要在 显示错误之前,进行一下判断, 如果有错误,才显示,如果没有错误的话,就不显示 。


用 hasFieldErrors() 用于验证是否有 field 级别的错误。


用 hasActionErrors() 用于验证是否有 action 级别的错误。


一.二.六 重写 /content/message.jsp 页面, 添加判断


<body>
<!-- 判断一下,是否有field 范围的错误 -->
<s:if test="hasFieldErrors()">
  <h3>显示Field错误</h3>
  <!-- 会显示全部的错误 -->
  <s:fielderror></s:fielderror>
  <h3>显示单个错误</h3>
  <s:fielderror cssErrorStyle="color:red;font-size:20px;">
    <!-- 只显示name的错误信息 -->
    <s:param>nameErr</s:param>
  </s:fielderror>
</s:if>
<!--判断一下,是否有 action范围的错误 -->
<s:if test="hasActionErrors()">
  <h3>显示Action错误</h3>
  <s:actionerror/>
</s:if>
</body>


再次进行测试:


输入网址: http://localhost:8080/Struts_Validate/User_field, 显示field 域错误:


20200419142030627.png

输入网址: http://localhost:8080/Struts_Validate/User_action, 显示action 域错误


20200419142043760.png






相关文章
|
10月前
|
编解码 前端开发 Java
springMVC--数据验证以及国际化
springMVC--数据验证以及国际化
96 0
|
XML Java Apache
验证框架 | 学习笔记
快速学习验证框架,介绍了验证框架系统机制, 以及在实际应用过程中如何使用。
82 0
|
XML 前端开发 Java
Struts2利用验证框架实现数据验证(十一)下
Struts2利用验证框架实现数据验证(十一)
Struts2利用验证框架实现数据验证(十一)下
|
XML 前端开发 数据安全/隐私保护
Struts2利用验证框架实现数据验证(十一)中
Struts2利用验证框架实现数据验证(十一)
148 0
Struts2利用验证框架实现数据验证(十一)中
|
前端开发 JavaScript Java
SpringMVC的数据验证和JSR 303国际化显示(十一)上
SpringMVC的数据验证和JSR 303国际化显示(十一)上
199 0
SpringMVC的数据验证和JSR 303国际化显示(十一)上
|
前端开发 Java 数据库连接
SpringMVC的数据验证和JSR 303国际化显示(十一)中
SpringMVC的数据验证和JSR 303国际化显示(十一)中
193 0
SpringMVC的数据验证和JSR 303国际化显示(十一)中
|
前端开发 Java 数据库连接
SpringMVC的数据验证和JSR 303国际化显示(十一)下
SpringMVC的数据验证和JSR 303国际化显示(十一)下
310 0
SpringMVC的数据验证和JSR 303国际化显示(十一)下
|
JavaScript Java 开发者
验证框架|学习笔记
快速学习验证框架
|
数据安全/隐私保护
14 Struts2 验证框架
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxdeng/article/details/82020359 数据校验 数据校验是程序中最常见的模块。
1303 0
|
Java 数据安全/隐私保护 应用服务中间件