watfgzs的gravatar头像
watfgzs 2015-04-21 01:48:57

spring mvc怎么在POST请求时,通过@RequestBody转换json为java Bean实体?

@RequestMapping(value ={ "/userAdd" }, method = { RequestMethod.POST},produces={"application/json"},consumes={"application/json"})
public String userAdd(@RequestBody User u){


}

当传入一个json之后@RequestBody会将json转为对象,但是现在要在这个User实体里面写一个操作数据库的方法,这时就要将dao的一个bean注入到User里面,不知道有没有人这么使用过?通过Spring普通注解的方式是不行的,因为这个User对象是@RequestBody转成的,不是Spring初始化时产生的,请教一下诸位大神!

所有回答列表(5)
kiky的gravatar头像
kiky  LV10 2015年4月21日

先传个字符串的json数据,然后把json格式的字符串转javabean   是不是更方便一点?

你为我着迷丶的gravatar头像
你为我着迷丶  LV18 2015年4月21日

把你准备要实现的功能说出来,我们也好说出解决方案。你直接说  “通过@RequestBody转换json为java Bean实体”  ,也许根本没必要那么做 就可以实现 。     

maochong2009的gravatar头像
maochong2009  LV8 2015年4月21日

我也用过spring MVC 在我看来  你这个传参方式就是一个矛盾的   User 是一个实体   你从jsp传过来一个JSON  你确定 User  可以接到?

  spring MVC 这种接参方式一般是post然后form提交 form.serialize() 直接提交有User中属性名对应的 form 
   有疑问 你可以继续问

wentao的gravatar头像
wentao  LV24 2015年4月21日

可以,只要页面传过来的json格式和javabean的属性相对应,然后在javabean要做一些注解,比如那些列不需要的。

gown_way的gravatar头像
gown_way  LV11 2015年4月22日

这个你只要将javabean 作为方法的参数即可,但你的表单name的属性值要与javabean的对象属性名一致

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友