SpringMVC的请求乱码解决和接收前端常用类型(五)下

简介: SpringMVC的请求乱码解决和接收前端常用类型(五)

三.五 绑定List 集合对象


与数组接收基本是一致的。


1 . 后台接收处理


@RequestMapping(value="/register")
  public String register(User user,@RequestParam(value="hobby",required=false) List<String> hobby){
    System.out.println("接收的对象:"+user.toString());
    System.out.println("爱好是:"+Arrays.toString(hobby.toArray(new String[]{})));
    return "user/list";
  }


2 . 后台显示处理


前端多传入 一个 读书 (老蝴蝶不要脸一次) 的选项。


20190809102720974.png


当然,也是可以将集合放置在User 对象里面的。


3 . 在User 对象中添加一个 List 集合属性,实现setter和getter方法。


 private List<String> hobby;
public List<String> getHobby() {
    return hobby;
  }
  public void setHobby(List<String> hobby) {
    this.hobby = hobby;
  }


4 . 后端控制台接收


@RequestMapping(value="/register")
  public String register(User user){ 
    System.out.println("接收的对象:"+user.toString());
    List<String> hobby=user.getHobby();
    System.out.println("对象接收List爱好是:"+Arrays.toString(hobby.toArray(new String[]{})));
    return "user/list";
  }


5 .前端传入数据


20190809102742366.png


6 . 后端控制台打印输出


2019080910275447.png


三.六 绑定Map 对象。


将前台传入的值,当成一个Map传入进去。 继续接着上面的前端代码往下写。


前端代码:


职业1: <input type="text" name="love1" value=""> <br/>
    职业2: <input type="text" name="love2" value=""><br/>
    职业3: <input type="text" name="love3" value=""><br/>


2 . 后端接收。


@RequestMapping(value="/register")
  public String register(User user,@RequestParam Map<String,String> map){  //此时,requestParam注解里面不能写任何值。
    System.out.println("接收的对象:"+user.toString());
    for(Map.Entry<String,String> entry:map.entrySet()){
      System.out.print("输出值:"+entry.getKey());
      System.out.print(",输出值:"+entry.getValue());
      System.out.println("\n");
    }
    return "user/list";
  }


3 . 前端数据写入


20190809102808522.png


4 . 控制台打印输出


20190809102816756.png


会发现,把所有的请求参数都放置在了Map 里面。 如果想,仅仅把 参数为love1,love2,love3的放置进去呢?


5 .将集合Map属性 写入到User 类中,并实现setter和getter方法。


private Map<String,String> loveMap;
public Map<String, String> getLoveMap() {
    return loveMap;
  }
  public void setLoveMap(Map<String, String> loveMap) {
    this.loveMap = loveMap;
  }


6 . 前台代码。 注意,这个时候有一个变化了。


<!--name便为属性.key值-->
职业1: <input type="text" name="loveMap['love1']" value=""> <br/>
    职业2: <input type="text" name="loveMap['love2']" value=""><br/>
    职业3: <input type="text" name="loveMap['love3']" value=""><br/>


7 .后端代码接收


@RequestMapping(value="/register")
  public String register(User user){ 
    System.out.println("接收的对象:"+user.toString());
    Map<String,String> loveMap=user.getLoveMap();
    for(Map.Entry<String,String> entry:loveMap.entrySet()){
      System.out.print("输出值:"+entry.getKey());
      System.out.print(",输出值:"+entry.getValue());
      System.out.println("\n");
    }
    return "user/list";
  }


8 .前台传入数据


20190809102828126.png


9 . 后端控制台打印输出


20190809103015556.png


可知,前端仅love1,love2,love3放置在了Map集合里面。


所以,最好把前端的数据放置在对象里面,便于接收。 当然,实际开发中,并不能改变User类,而应该添加一个User类的扩展 UserVo 类,在UserVo 类中添加扩展的属性。


谢谢!!!

相关文章
|
1月前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
34 1
Spring MVC——项目创建和建立请求连接
|
1月前
|
前端开发 JavaScript
回顾前端页面发送ajax请求方式
回顾前端页面发送ajax请求方式
37 18
|
1月前
|
前端开发 JavaScript API
前端Get请求能在body上传参吗
【10月更文挑战第11天】 在浏览器环境中,GET请求的body参数会被忽略,这是因为浏览器中的XHR和fetch实现限制了这一行为。而在Node.js服务端环境中,GET请求可以在body中传递参数,因为服务端请求库没有这样的限制。实际上,GET请求不带body是HTTP标准的一部分,但在某些场景下,为了遵循RESTful规范,可以考虑通过服务端转发或BFF模式来实现复杂的参数传递。
|
1月前
|
JavaScript 前端开发 Python
django接收前端vue传输的formData图片数据
django接收前端vue传输的formData图片数据
38 4
|
1月前
|
存储 缓存 监控
|
1月前
|
移动开发 前端开发 HTML5
SharedWorker 优化前端轮询请求
【10月更文挑战第6天】
25 1
|
1月前
|
JSON 前端开发 数据格式
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
文章详细讲解了在SpringMVC中如何使用`@RequestMapping`进行路由映射,并介绍了前后端参数传递的多种方式,包括传递单个参数、多个参数、对象、数组、集合以及JSON数据,并且涵盖了参数重命名和从URL中获取参数的方法。
76 0
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
|
1月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
53 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
2月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向
|
2月前
|
存储 前端开发 JavaScript
前端基础(十一)_函数声明及调用、函数的形参与实参、arguments参数、函数的参数类型、函数中的问题
本文介绍了JavaScript中函数的声明及调用、形参与实参的概念、arguments对象的使用、函数参数的类型以及函数中this的作用。通过示例代码详细解释了函数如何接收参数、如何处理参数个数不匹配的情况,以及函数在不同上下文中this的指向。
24 1