一、如何传递参数

@RequestMapping("/detail")

public String detail(@RequestParam("id") int id,Model model){

Category category=new Category();

category.setCateId(id);

category.setCateName("测试分类"+id);

model.addAttribute("cate",category);

return "detail.html";

}

@RequestMapping(value = "/edit/{id}",method = RequestMethod.GET)

public String edit(@PathVariable("id") int id,Model model) {

//todo:get category from db

Category category=new Category();

category.setCateId(id);

category.setCateName("测试分类"+id);

model.addAttribute("cate",category);

return "edit.html";

}

二、校验表单

1.首先定义实体类。

public class Category{

public Category(){}

@NotNull

@Min(1)

private int cateId;

@NotNull

private String cateName;

public int getCateId() {

return cateId;

}

public void setCateId(int cateId) {

this.cateId = cateId;

}

public String getCateName() {

return cateName;

}

public void setCateName(String cateName) {

this.cateName = cateName;

}

}

2.表单edit.html

id:
name:

3.通过给action方法的参数添加@Valid注解,这会告知Spring,需要确保这个对象满足校验限制

@RequestMapping(value = "/save",method = RequestMethod.POST)

public String save( @Valid Category category, Errors errors) throws IOException {...}

错误可以通过Errors对象进行访问,现在这个对象已作为processRegistration()方法的参数。(很重要一点需要注意,Errors参数要紧跟在带有@Valid注解的参数后面,@Valid注解所标注的就是要检验的参数。

三、上传图片

1.设置web.xml配置

web.xml配置multipart-config

springmvc

org.springframework.web.servlet.DispatcherServlet

1

2097152

4194304

2.from表单

form要将enctype属性设置为multipart/form-data,这就告诉浏览器以multipart数据的形式提交表单

input标签要把type设置为file,这能够让用户选择要上传的图片文件。accept属性用来将文件类型限制为JPEG、PNG以及GIF图片。根据其name属性,图片数据将会发送到multipart请求中的profilePicture part之中

id:
name:
file:

3.controller:

@RequestPart :图片对应的参数要添加该注解

spring提供了Multipart MultipartFile对象,它为处理multipart数据提供了内容更为丰富的对象

transferTo() ,它能够帮助我们将上传的文件写入到文件系统中

@RequestMapping(value = "/save",method = RequestMethod.POST)

public String save(@RequestPart("picture") MultipartFile picture, @Valid Category category, Errors errors) throws IOException {

//todo:save file to image server

String filepath=request.getRealPath("/")+"upload/"+picture.getOriginalFilename();

picture.transferTo(new File(filepath));

if(errors.hasErrors()){

return "edit.html";

}

//todo:save category to db

return "redirect:/category/detail?id="+category.getCateId();

}

java form 上传文件_JAVA入门[16]-form表单,上传文件相关推荐

  1. php文件上传并保存路径到数据库,thinkphp表单上传文件并将文件路径保存到数据库中?...

    上传单个文件,此文以上传图片为例,上传效果如图所示 创建数据库upload_img,用于保存上传路径 CREATE TABLE `seminar_upload_img` (  `id` int(11) ...

  2. form表单上传文件_SpringBoot中如何使用SpringMVC上传文件?

    今天我们要说的这个话题很简单,不要问为啥,因为SpringBoot,哈哈.现在SpringBoot可以说人人都会用了,它的好处是显而易见的,大大的简化了配置,一起来看看吧. 我们分以下3种情况来谈这个 ...

  3. ajax post form上传图片,ajax怎样提交form表单与实现文件上传

    这次给大家带来ajax怎样提交form表单与实现文件上传,ajax提交form表单与实现文件上传的注意事项有哪些,下面就是实战案例,一起来看一下. 前几天,发现了一些小问题.我在写后台管理页面时,需要 ...

  4. ajax 表单提交传文件,Ajax提交Form表单及文件上传

    刚刚申请下来的博客,写得第一篇.有点小激动,本人以前是一名工业3D设计师突然有些变故做上了JavaWeb开发: 前几天,发现了一些小问题.我在写后台管理页面时,需要上传一张图片.于是我就用很普通的Fo ...

  5. javaweb开发之处理表单上传文件和文件下载

    2019独角兽企业重金招聘Python工程师标准>>> 一.基于表单的上传文件 1. enctype属性 当表单需要上传文件时,需指定表单 enctype 的值为 multipart ...

  6. Web后端学习笔记 Flask(8) WTForms 表单验证,文件上传

    Flask-WTF是简化了WTForms操作的一个第三方库.WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板.同时还包含一些其他的功能.例如CSRF保护,文件上传等功能,安装fl ...

  7. SpringMVC之表单提交===③===多文件上传表单

    上文简单介绍了springmvc单文件上传表单 ,本文继续介绍多文件上传表单.包含单文件上传的表单已经能够满足大部分功能需求,但任然不够完善.实际业务中可能会包含多个文件同时上传,例如:商家在电商平台 ...

  8. serverlet 原理_serverlet实现表单上传文件原理

    ("/home/jh/upload/request.txt"); PrintWriter fileout = new PrintWriter(new FileWriter(f)); ...

  9. WebApi发送HTML表单数据:文件上传与多部分MIME

    5.3 Sending HTML Form Data 5.3 发送HTML表单数据(2) 本文引自:http://www.cnblogs.com/r01cn/archive/2012/12/20/28 ...

最新文章

  1. 个人作业-Alpha项目测试
  2. python项目实例初学者-python 初学者必备14张思维导图
  3. Winform中对DevExpress的RadopGroup的Description、Value、Tag、Text的理解与使用
  4. 理论计算机科学研究生,清华大学理论计算机科学中心姚期智组招收保送研究生,请帮忙发到虎...
  5. 赋能工业互联网融合发展 | 北京信息化和工业化融合服务联盟平台化设计专业委员会、中国仿真学会CAE仿真专业委员会成立
  6. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.22. 子查询表达式
  7. Go语言与数据库开发:01-11
  8. lamda获取参数集合去空_集合源码解析之LinkedList
  9. SpringMVC+Thymeleaf如何处理URL中的动态查询参数
  10. 微软拟测试类微博服务OfficeTalk
  11. 间距margin、padding - bootStrap4常用CSS笔记
  12. GB2312、GBK汉字字库偏移地址的计算
  13. acm中c语言标准输入输出,ACM竞赛之输入输出
  14. java keystore php,KeyStoreSpi
  15. Cloud Rover隐私政策
  16. 英语3500词(15/20)crime主题(2022.1.27)
  17. 数学基础知识02——旋转轴、旋转角度和旋转矩阵
  18. 用.net制作排序、分页及多条记录选择及删除的范例(不用.net内置的分页和排序机制)
  19. 从零开始的RVOS: Referring Video Object Segmentation
  20. androoid_4_4 yuga_clm920_cn 4G_module调试

热门文章

  1. Linux基础命令---su
  2. 给页面点击链接加了转圈圈和解决遇到的bug
  3. 【Python之旅】第二篇(三):基于列表处理的购物清单程序
  4. List扩展方法出错,this关键词出错,解决方案
  5. 学习String的内容
  6. Python学习笔记(六)
  7. iOS设计模式——MVC(Model-View-Controller)
  8. 电子发现与统一归档库
  9. java.math.BigDecimal的用法-商业计算
  10. PHP CGI 中 fix_pathinfo 引起的安全隐患