strut2输入校验框架的一个例子

2024-05-11 18:08

本文主要是介绍strut2输入校验框架的一个例子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

struts2输入校验有2中方法。校验方式有2中:对所有方法校验,对某个方法校验

1.采用手工编写代码实现。

2.基于XML配置方式实现。

·采用手工编写代码校验Action中的所有方法

这种方式需要在Action类中重写validate()方法,validate()方法会校验action中所有与execute方法签名相同的方法。当某个数据校验失败时,我们应该调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action可以继承ActionSupport),如果系统的fieldErrors包含失败信息,struts2会将请求转发到名为”input“的result。在input视图中可以通过<s:fielderror/>显示失败信息。

例如:

index.jsp页面

 <body>
   <s:fielderror/>
    <form action="${pageContext.request.contextPath}/hello/test/user_update.action" method="post">
      用户名:<input type="text" name="username"/>不能为空<br/>
      手机号:<input type="text" name="phone"/>不能为空,并且要符合手机号的格式1,3,5,8,后面是9个数字<br/>
      <input type="submit" value="提交"/>
    </form>
 </body>

Action类

public class Person extends ActionSupport{

 private String username;
 private String phone;

 省略get,set方法
 public String update(){
  ActionContext.getContext().put("message", "更新成功");
  return "message";
 }
 
 public String save(){
  ActionContext.getContext().put("message", "保存成功");
  return "message";
 }
 
 @Override
 public void validate() { //validate方法会对action中的所有方法进行校验
  if(username==null||"".equals(username.trim())){
   this.addFieldError("username", "用户名不能为空");
  }
  if(phone==null||"".equals(phone.trim())){
   this.addFieldError("phone", "手机号不能为空");
  }else{
   if(!Pattern.compile("^1[358]\\d{9}$").matcher(this.phone).matches()){
    this.addFieldError("phone", "手机号格式不正确");
   }
  }
 }
}

struts.xml文件配置

<package name="hello" extends="struts-default" namespace="/hello/test">
  <action name="user_*" class="com.amaker.Person.Person" method="{1}">
   <result name="message">/WEB-INF/page/message.jsp</result>
   <result name="input">/index.jsp</result>
  </action>
</package>

message.jsp页面 ${message}

·采用手工编写代码校验Action中的某个方法

这个上上面的校验十分相似,唯一不同的地方是:方法名比如我们要对update方法校验,方法名是validateUpdate(){...} ,注意方法名的首字母需要大写。代码同上一样。只是方法名字稍微改变一下。

 

·基于XML配置方式实现校验Action中的所有方法

例如:

struts.xml文件,jsp页面,都没变化同时所示

验证xml文件,此文件名字格式是:action类名+validation.xml

<validators>
 <field name="username">
  <field-validator type="requiredstring">
   <param name="trim">true</param>
   <message>用户名不能为空</message>
  </field-validator>
 </field>
</validators>
action类

public class PersonAction extends ActionSupport{

 private String username;
 private String phone;
 省略了 get  set,并且采用xml格式验证,此处不能有validate方法了
 public String update(){
  ActionContext.getContext().put("message", "更新成功");
  return "message";
 }
 
 public String save(){
  ActionContext.getContext().put("message", "保存成功");
  return "message";
 }

}

这篇关于strut2输入校验框架的一个例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980272

相关文章

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

spring 参数校验Validation示例详解

《spring参数校验Validation示例详解》Spring提供了Validation工具类来实现对客户端传来的请求参数的有效校验,本文给大家介绍spring参数校验Validation示例详... 目录前言一、Validation常见的校验注解二、Validation的简单应用三、分组校验四、自定义校

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时,Curator 是一个非常流行的客户端库,它简化了 ZooKeeper 的使用,提供了高级的抽象和丰富的工具。本文将详细介绍 Curator 框架,包括它的设计哲学、核心组件以及如何使用 Curator 来简化 ZooKeeper 的操作。 1

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟