Spring MVC表单验证

看登录控制器代码:

    @RequestMapping(method=RequestMethod.POST,path="/login")public void login(@Validated UserEntity user,BindingResult result,HttpServletResponse response) throws BindException{if(result.hasErrors()){response.setHeader("Location", "/account/login?edit");return;}...
}

参数UserEntity user就是从表单接收到的参数,这个参数前面加了@Validated表示这个参数是需要验证的,而验证的结果,则保存在BindingResult result中,所以接下来的代码if(result.hasErrors())就判断,如果表单校验不通过,则跳转回表单编辑页面。

那么,程序是怎么判断表单的数据是不是合法的呢?这就要看UserEntity了:

public class UserEntity {@Size(min=1,max=30,message="用户名长度必须是1~30个字符")  private String name;@Size(min=6,max=30,message="密码长度必须是6~30个字符")private String password;
}

除了@Size注解之外,还可以使用@Pattern注解,用正则表达式来校验。例如:

@Pattern(regexp="[a-zA-Z0-9._%+-]+@[a-zA-Z0-9]+\\.[a-zA-Z]{2,4}",message="这不是有效的电子邮件格式")private String email;

另外,message指定了出错时,返回的出错信息。要想这些信息显示在页面上,可以使用<sf:errors/>标签:

<sf:error path="email" cssClass="error" />

普通情况下,path设置为属性的名称就可以了。如果想要在一个表单里显示所有的出错信息,可以将path的值设为*;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序开发语言python_小程序是用什么语言开发的?5种最佳语言分享

你应该学习哪种编程语言来探索AI的深度&#xff1f;当然&#xff0c;你会需要一个拥有许多优秀机器学习和深度学习库的语言。它还应具有良好的运行时性能&#xff0c;良好的工具支持&#xff0c;大量程序员社区以及健康的支持包生态系统。这仍然留下了很多不错的选择。下面是我…

tcl之内容

转载于:https://www.cnblogs.com/chip/p/5847126.html

自定义hibernate validation注解

效果和优点 先看最后效果&#xff1a; public class UserEntity {Password private String password;Emailprivate String email;} 上面使用了两个自定义的注解来验证password和email&#xff0c;这样做的好处是&#xff1a;一处定义&#xff0c;处处使用&#xff0c;要修改…

《JS权威指南学习总结--9.5 类和类型》

内容要点&#xff1a; 介绍了三种用以检测任意对象的类的技术&#xff0c;instanceof运算符、constructor属性&#xff0c;以及构造函数的名字。 但每种技术都不甚完美&#xff0c;本节总结了鸭式辩型&#xff0c;这种编程哲学更加关注对象可以完成什么工作&#xff08;它包含什…

js密码强度正则表达式_知道这20个前端正则表达式,能让你做项目时少写1000行甚至一万行

正则表达式&#xff0c;一个十分古老而又强大的文本处理工具&#xff0c;仅仅用一段非常简短的表达式语句&#xff0c;便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话&#xff0c;能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的…

MongoDB数据库设计备忘

1、sex存为01还是男女&#xff1f; 存为01主要是为了国际化和节省存储空间。存为01很容易转换成不同语言表示的男女。 2、文件存储方案 MongoDB有GirdFS用来将文件直接保存到数据库&#xff0c;如果使用nginx&#xff0c;可以直接使用http读取GridFS里面的文件。 所以&…

react js 按条数 展开/折叠

//2条const MAX_SHOW_NUM 2;class HotDiscuss extends Component { static propTypes { //验证 repliedCommentList: PropTypes.array, }; constructor(props) { super(props); this.state { //子评论折叠 isCl…

python怎么获取时间_Python:如何从datetime.timedelta对象中获取时间?

在我看来&#xff0c;MySQL中的TIME类型旨在表示时间间隔&#xff0c;就像Python中的datetime.timedelta那样。从您引用的文档中&#xff1a;TIME values may range from -838:59:59 to 838:59:59. The hours part may be so large because the TIME type can be used not only…

腾讯视频客户端导出MP4格式

腾讯视频下载下来之后是.qlv格式&#xff0c;这种格式只能使用客户端播放。感觉挺蛋疼的&#xff0c;Mp4好不容易让各种设备都可以统一播放视频了&#xff0c;这样一搞感觉又倒退了几十年&#xff0c;关键的是&#xff0c;有些资源是腾讯独家的&#xff0c;不装客户端就看不了&…

Java上传文件到MongoDB GirdFS

上传有两种方式&#xff0c;一种是使用UploadFromStream&#xff0c;另外一种是OpenUploadStream方式&#xff0c;这里使用的是第二种方式&#xff1a; public ObjectId save(){GridFSBucket gfsbk GridFSBuckets.create(db, "user_photo");byte[] data "Data…

js后退页面不重新加载_快应用:支持加载单独JS文件的规范思考

当前快应用的项目中&#xff0c;支持加载其它JS文件&#xff08;通过&#xff1a;require(./foo.js)&#xff09;&#xff0c;然后通过webpack工具处理依赖&#xff0c;最终完成页面JS的构建&#xff0c;其中页面JS包含了引入的所有JS内容&#xff1b;本文讨论的主要是&#xf…

Linux Linux程序练习七

题目&#xff1a;实现两个程序mysignal、mycontrl&#xff0c;mycontrl给mysignal发送SIGINT信号&#xff0c;控制mysignal是否在屏幕打印“hello”字符串。 //捕捉信号#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h>…

python读取每一行文字二十四_python接口自动化(二十四)--unittest断言——中(详解)...

简介上一篇通过简单的案例给小伙伴们介绍了一下unittest断言&#xff0c;这篇我们将通过结合和围绕实际的工作来进行unittest的断言。这里以获取城市天气预报的接口为例&#xff0c;设计了 2 个用例&#xff0c;一个是查询北京的天气&#xff0c;一个是查询南京为例&#xff0c…

spring MVC配置form支持PUT和DELETE方法

REST的关键原则之一就是“使用标准接口”&#xff08;the use of the Uniform Interface&#xff09;&#xff0c;也就是提倡根据不同的语义使用GET, PUT, POST和DELETE方法&#xff0c;而html的form标签只支持两种提交方法&#xff1a;POST和GET&#xff0c;所以&#xff0c;为…

如何学习编译原理?

编译原理很难学&#xff0c;但如果自己动手编&#xff0c;会简单一点&#xff0c;而且不要想一口吃成胖子&#xff0c;从词法分析开始写&#xff0c;一步步来&#xff0c;下个龙书电子版看看。慢慢来&#xff0c;一点一点地去消化它&#xff0c;让它成为你的知识。 转载于:http…

Spring MVC访问不到静态资源

运行Spring MVC项目&#xff0c;发现.css&#xff0c;js等文件加载不了&#xff0c;一般是spring MVC的拦截匹配导致的。 例如我在web.xml里这样配置&#xff1a; <servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.w…

206. Reverse Linked List

Reverse a singly linked list. Solution 1: 思路&#xff1a;null的使用。用一个null node来承接&#xff0c;一个一个接上去即可。一刷的时候还觉得这node转化好麻烦好神奇&#xff0c;熟悉之后其实做起来很快。 /*** Definition for singly-linked list.* public class List…

labview项目实例_labview操作者框架

0.引言操作者框架适合于多并行任务的项目。在这样的项目中&#xff0c;多个并行任务之间往往需要相互通信&#xff0c;传统的解决办法是&#xff0c;每个任务一个队列&#xff0c;一个while循环&#xff0c;多任务项目需要在一个程序框图使用多个while&#xff0c;不好看。NI说…

eclipse发布web不带项目名的url

默认发布后访问地址是&#xff1a; http://localhost:8080/huanle/ 要达到的效果是&#xff1a; http://localhost:8080/ 不带项目名的url的好处是&#xff0c;不用再在每个地址前加<% path%>了&#xff1a; &#xff08;很烦有木有&#xff09; 操作方法&#x…

php 随机在文章中添加锚文本_页面SEO优化的锚文本优化概念

SEO优化分为结构优化和页面优化&#xff0c;页面的SEO优化中其中一个重点是锚文本的建设。锚文本的概念就是网站的内部链接&#xff0c;较为常见的就是将文章中的关键词作为锚文本。但在具体建设当中&#xff0c;很多网站对锚文本的处理出现了很多错误。这是因为对锚文本的优化…