1.获取路径中的值
@RequestMapping(value = "/put/{name}") public String put(@PathVariable String name){ return name; }
|
在访问 ‘’https://localhost:8080/put/拉嘎节目" 时,程序会自动将 URL 中的模板变量 {name} 绑定到通过@PathVariable 注解的同名参数上,即”程序获取路径中的值”

2.获取路径中的参数
对于路径中的参数获取 ,可以写入方法的形参中。下面代码是获取参数 username 的值。
@RequestMapping(value = "/put") public String put(String name){ return name; }
|

3.通过 Bean 接收 https 提交的对象
可以通过 Bean获取 https 提交的对象,如以下代码
@RequestMapping(value = "/put") public String put(Book book){ return book.toString(); }
|
.
4.用注解@ModelAttribute获取参数
用于从 Model、Form、URL 请求参数中获取属性值, 如以下代码
@RequestMapping(value = "/put") public String put(@ModelAttribute("book") Book book){ return book.toString(); }
|
参数在路径URL中:

参数在Form中:

5.通过httpsServletRequest接收参数
可以通过httpsServletRequest接收参数 如以下代码
@RequestMapping(value = "/put") public String put(httpsServletRequest request){ return request.getParameter("username"); }
|

6.@RequestParam绑定入参
当请求参数不存在时会有异常发生,可以通过设置属性 “required=false” 来解决。
@RequestMapping(value = "/put") public Map<String, Comparable> put(@RequestParam(value = "id",required = false) Integer id, @RequestParam(value = "username",required = false) String username){ Map<String, Comparable> map = new HashMap<String, Comparable>(); map.put("id", id); map.put("username", username); return map; }
|

7.用@RequsetBody 接收 JSON 数据
@RequestMapping(value = "/put") public Map<String, String> put(@RequestBody Map<String, String> book){ return book; }
|

8.上传文件MultipartFile
通过@RequestParam 获取文件,如下代码
@RequestMapping(value = "/put") public String put(@RequestParam("file")MultipartFile file, RedirectAttributes redirectAttributes){ if (file.isEmpty()){ redirectAttributes.addFlashAttribute("message","请选择文件"); return "no"; } try { byte[] bytes = file.getBytes(); Path path = Paths.get("./"+file.getOriginalFilename()); Files.write(path, bytes); redirectAttributes.addFlashAttribute("message","成功上传"+file.getOriginalFilename()); } catch (Throwable e) { e.printStackTrace(); } return "ok"; }
|

9. 上传图片
很多人在整合富文本编辑器时不容易成功,特别是在不同版本要求返回的数据类型不一样时,而网络上的资料很多是不带版本号或是过时的
这里以常用的富文本编辑器 CKEditor为例,实现上传图片功能 。Spring Boot 4.0后的版本只有返回的是 JSON 恪式的数据才能成功,如 [{“uploaded”:1, “fileName”:”fileName”, “url”= “message”:”上传成功”}] 上传图片的代码如下,
@RequestMapping(value = "/put") public String put(@RequestParam("upload")MultipartFile file, RedirectAttributes redirectAttributes){ Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); String nyr = dateFormat.format(date); if (file.getOriginalFilename().endsWith(".jpg")||file.getOriginalFilename().endsWith(".png")|| file.getOriginalFilename().endsWith(".git")){ try { byte[] bytes = file.getBytes(); String s = nyr+Math.random()+file.getOriginalFilename(); Path path = Paths.get("./"+s); Files.write(path, bytes); return "success"; } catch (Throwable e) { e.printStackTrace(); } }else { return "格式不支持"; } return "error"; }
|

