springMVC中前端将传递数据传递到后端后端的接收方式(转)

转:https://blog.csdn.net/m0_37601318/article/details/78261144 侯大哥

内容如下:

前提:springmvc可以自动将json数据转化为Java对象,而将对象转化为json数据,必须在配置文件中配置!,需要注解@responseBody,需要json包

在Java中,前端传递数据的方式是<from>标签<input>标签中的name属性,还有就是ajax

1、直接用map接收,键值对的形式,

这样子在方法的参数里面用一个map来接收,可以把前端所有数据以【key(name),value(value)】的方式封装进去,然后在后台取出来的时候,直接调用Map的get()

方法就可以把值取出来,例如:map.get("name");不过这种方法比较麻烦,取出来之后又要转类型,而且取值的过程中又需要遍历一次map,不大建议使用,虽然可以说接收任何参数

2.用一个user类来接收(from表单提交)

这种方法适合于前端页面的属性(name)属性和entity(user类)的属性一致的情况下才可以进行,否则会报错

3、如果前端的数据跟后台的entitiy的属性类型和数目不同的话,需要在前端自己      封装json数据,然后以Ajax的方式传到后台

在传输到后台的时候,前端的json数据要是json字符串才行,这样子springMvc才能接收呢,后台执行方法的接收参数里面可以用一个自己写的vo来接收,即value object,而且在接收参数的前面

@RequestBody应用

当时并不太了解@RequestBody,也并没有使用js提供的JSON.stringify()方法

所有都是自己写的,比如js将json转为字符串的方法,后台接收json转成实体的方法。

最近接触到了@RequestBody,于是想将之前的代码改写一下。

首先@RequestBody需要接的参数是一个string化的json,这里直接使用JSON.stringify(json)这个方法来转化

其次@RequestBody,从名称上来看也就是说要读取的数据在请求体里,所以要发post请求

第三,要设置contentType,contentType:"application/json,明确的告诉服务器发送的内容是json,而默认的contentType是application/x-www-form-urlencoded; charset=UTF-8

需要写一个@RequestBody注解:

4,当接收参数的时候,用@RequestParam,并且

当不用@ RequestParam时候,必须保证和前端传递name名字相同,否则必须按照严格的格式写@RequestParam(value="path") String path1!!

sarida注

前端向后台传值的方式:1、form表单  2、url路径、a标签等  3、ajax

后台的接收方式:1、直接使用同名的属性需带有get、set方法  2、在后台方法的参数列表中使用同类型、属性名的实体类接收  3、使用VO接收电邮get set方法,用get方法将内容传出 4、不同名的属性在方法的参数列表中使用 @RequestParam指定一下

后台向前端传值:1、装入到request或session域中   2、json(用于ajax)

前端接收后台的传值:1、el表达式 ${}    2、ajax的callback

猜你喜欢

转载自blog.csdn.net/sarida/article/details/82683466
今日推荐