一,参数校验

springmvc中我们可以使用第三方的校验框架来实现请求参数的校验,常用hibernate的校验框架validation1.pom中导入所需依赖hibernate-validator-4.3.2.Final.jarjboss-logging-3.1.0.CR2.jarvalidation-api-1.0.0.GA.jar
2.配置验证器<!-- 配置验证器 --><bean id="myvalidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"><property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property></bean> <mvc:annotation-driven validator="myvalidator"/>3.创建实体类,用注解配置校验规则public class Phone {private Integer id;@NotBlank(message = "品牌呢?")private String brand;@NotBlank(message = "没型号?")private String model;@Max(value = 99999, message = "太贵了吧?")private Integer price;@DateTimeFormat(pattern = "yyyy-MM-dd")private Date launchDate;//GETTERS AND SETTERS...}4.contorller:@RequestMapping("add")public String add(Model md,@Valid Phone phone, BindingResult br) throws Exception {if (br.hasErrors()) {FieldError brand = br.getFieldError("brand");FieldError model = br.getFieldError("model");FieldError price = br.getFieldError("price");if (brand != null) {md.addAttribute("brandmsg", brand.getDefaultMessage());}if (model != null) {md.addAttribute("modelmsg", model.getDefaultMessage());}if (price != null) {md.addAttribute("pricemsg", price.getDefaultMessage());}return "add";} else {phoneService.add(phone);return "redirect:list";}}注意:参数列表中,被校验的参数(phone)和BindingResult必须相邻并保证顺序。5.jsp显示错误信息品  牌:<input type="text" name="brand"><span style="color: red;">${ brandmsg }</span><br>型  号:<input type="text" name="model"><span style="color: red;">${ modelmsg }</span><br>价  格:<input type="text" name="price"><span style="color: red;">${ pricemsg }</span><br>二,SpringMVC中的文件上传
1.springmvc对fileupload进行了封装,使用上传需要先导入fileupload的依赖:<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.2</version></dependency>
2.还需要在springmvc的配置文件中配置文件解析器:<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="10240000"/></bean>
3.表单中需要指定提交方式为post,并将enctype改为multipart/form-data
4.完成以上设置,就可以在controller方法中接收文件了:@RequestMapping("/upload")public String upload(@RequestParam("fileName") CommonsMultipartFile file) throws Exception {}注意该参数需要通过@RequestParam指定参数名
常用校验注解
@Null 被注释的元素必须为 null
@NotNull 被注释的元素必须不为 null
@NotEmpty 被注释的字符串的必须非空
@NotBlank 验证字符串非null,且长度必须大于0
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=, min=) 被注释的元素的大小必须在指定的范围内
@Pattern(regex=) 被注释的元素必须符合指定的正则表达式
@Email 被注释的元素必须是电子邮箱地址
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Digits(integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
@Range(min=,max=) 被注释的元素必须在合适的范围内
@AssertTrue 被注释的元素必须为 true
@AssertFalse

被注释的元素必须为 false

转载于:https://www.cnblogs.com/memo-song/p/9157530.html

Spring框架——day04参数校验和文件上传相关推荐

  1. Spring MVC更多家族成员----文件上传---06

    Spring MVC更多家族成员----文件上传---06 本节导读 文件上传与MultipartResolver 使用MultipartResolver进行文件上传的简单分析 StandardSer ...

  2. Spring Boot 2.X 实现文件上传(三)

    使用 SpringBoot 项目完成单个.多个文件的上传处理,并将上传的文件保存到指定目录下. 代码演示案例 所有的 HTML 页面文件 index.html <!DOCTYPE html> ...

  3. 关于SpringMVC框架实现简单的文件上传下载(ssm)

    关于ssm框架整合文件的上传和下载. 首先来看单个附件的上传和下载: 1.首先创建一个用来测试的jsp文件上传下载的页面  代码如下 <%@ page language="java&q ...

  4. 自学Python第二十二天- Django框架(三) AJAX、文件上传、POST 请求类型之间的转换、多APP开发、iframe、验证码、分页器、类视图、中间件、信号、日志、缓存、celery异步

    Django官方文档 django 使用 AJAX django 项目中也可以使用 ajax 技术 前端 前端和其他 web 框架一样,需要注意的是,django 接收 POST 请求时,需要 csr ...

  5. Struts文件上传包含修改文件上传参数,多文件上传

    配置xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC& ...

  6. spring boot基础教程之文件上传下载

    一文件上传 文件上传主要分以下几个步骤: (1)新建maven java project: (2)在pom.xml加入相应依赖: (3)新建一个文件上传表单页面; (4)编写controller; ( ...

  7. nginx delete form表单 收不到参数_HTTP 文件上传的一个后端完善方案(NginX)

    (给PHP开发者加星标,提升PHP技能) 转自:林伯格 https://breeze2.github.io/blog/scheme-nginx-php-js-upload-process 前言 很多网 ...

  8. 上传文件和提交textfield_0基础掌握Django框架(37)文件上传

    为了更好的学习效果,请搭配视频教程一起学习: Django零基础到项目实战 - 网易云课堂​study.163.com 文件上传: 文件上传是网站开发中非常常见的功能.这里详细讲述如何在Django中 ...

  9. SpringBoot→请求参数、返回参数、文件上传、拦截器、异常处理、定时任务、异步任务

    web请求static静态资源 localhost:8080/cat.png localhost:8080/test.html localhost:8080/abc/test.html localho ...

  10. bootstrapinput传参数_***文件上传控件bootstrap-fileinput的使用和参数配置说明

    特别注意: 引入所需文件后页面刷新查看样式奇怪,浏览器提示错误等,可能是因为js.css文件的引用顺序问题,zh.js需要在fileinput.js后面引入.bootstrap最好在fileinput ...

最新文章

  1. 谁是当今最顶级的技术?SQL、Java、Python、C++ 皆上榜!
  2. R语言nchar函数统计字符串中字符个数实战
  3. HTML Add-on HTML 查看器/编辑器查看器
  4. 关于fatal error LNK1120: 1 unresolved externalsd而解决方法
  5. 线下沙龙 | 小身材大能量!用英伟达智能小车Jetbot玩转深度学习
  6. LeetCode Longest Common Prefix
  7. python paramiko 模块简介(SSH2协议)
  8. AsyncTask 源码流程简析
  9. 无法更新标识列 wechatid_宿州售楼处精神堡垒生产厂家-弈博标识标牌制造
  10. Microsoft store下载速度缓慢
  11. JAVA-MYSQL-SSH酒店民宿客房管理系统
  12. MATLAB调试滤波器,matlab 滤波器
  13. HTML5定稿,为什么是原生App的颠覆
  14. WARNING: One of the plugins you are using supports Java 8 language features. To try the support buil
  15. android 10.0 在系统源码下生成jks系统签名文件
  16. 更透明的隐私设置和全新的APP资源库:iOS 14测试版深度体验~~~
  17. 一流在线课程申报表公共计算机,衡阳财经业职业技术学院精品课程建设申报表.doc...
  18. 达梦DM装完数据库,bin下面没有disql文件是怎么回事?
  19. 斯坦福 AI Lab 主任 Chris Manning:人工智能研究的最新趋势和挑战
  20. 光流文件(.flo)转图像

热门文章

  1. IP地址、子网掩码、有效子网数、有效主机数
  2. 十四周二次课(3月27日)
  3. Tomcat历史版本下载
  4. 对Spring 容器管理事务支持的总结
  5. Win32++ Home Page
  6. FileStream StreamWriter StreamReader BinaryReader
  7. JavaScript的简单复习
  8. [UI] 精美UI界面欣赏[4]
  9. Juniper SRX210恢复密码过程
  10. Android 不同布局类型measure、layout、draw耗时对比