SpringMVC前后端传值的几种方式

    SpringMVC是一个用来控制请求,前后端传值的框架,大体的执行流程如图

SpringMVC前后端传值的几种方式

      公司大多使用注解方式配置,因为可以不用对每个controller都进行配置。@Controller注解标记的类便是一个controller对象,在控制器类中带有@RequestMapping注解的方法便是真正处理请求的处理器。

      @RequestMapping有相应的属性去控制处理行为。比如value属性,用来映射一个请求和一种方法;method属性用来指示该方法仅仅处理那些HTTP请求,也可以是多个请求;还可以去指定提交内容类型和返回内容类型。

SpringMVC前端向后端传值

     前端传到后端的数据可能包括变量,数组,对象,json等形式。

     变量

        控制器中的形参和表单中的name相同即可获取该变量,当然,如果想自己设定别名,使用@RequestParam(value="", required= ,defaultValue="")。

     对象

        通过对象名.属性名去获取属性,但是jsp中的name需要与属性名相同,当然同样可以使用@RequestParam去使用别名。

        json

         可以使用@RequestBody去实现,他会将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: "json",contentType:"application/json" 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List.

后端向前端传值

        可以使用Model和ModelAndView添加。model.addtribute(String,Object)。ModelAndView可以指定视图。

        此外,还有一个重要注解需要记住,@ModelAttribute。被该注解注释的方法会在Controller每个方法执行前被执行,在Controller映射到多个URL的时候,需要注意。@ModelAttribute只有一个属性value,表示绑定的属性名称。