springMVC接受前台传值
今天,用ajax向springMVC的控制器传参数,是一个json对象。({"test":"test","test1":"test1""test2":"test2"})开始的想法是用一个对象来接收这个json对象。但是又不知道具体用什么对象,开始用了一个Object,名字和json对象属性名相同,但是得不到
@RequestMapping("/test")
public void test(HttpServletResponse response,Ojbect data);
后来想想json是不是以String对象传进来又换成了String
@RequestMapping("/test")
public void test(HttpServletResponse response,String data);
这样还是没有得到前台的json对象,后来见data换成了其中的一个属性的键名
@RequestMapping("/test")
public void test(HttpServletResponse response,String test);
这样就得到了test键对应的值了。
后来感觉突然恍然大悟了,springMVC会将json对象中的一个个键值对传进来,好像不是讲json对象传进来,这样就需要将json对象的所有键值对写在方法的参数中。
这是一种方法,但是确实很繁琐,难道就不能有一个对象,springMVC将json对象注入到这个对象中吗?
后来找到了,可以定义一个数据类JSONData,类中的属性名字要和json对象中所有键值对的键名相同,并且需要有get,set方法(就是一个数据bean)
@RequestMapping("/test")
public void test(HttpServletResponse response,JSONData test);
这样就可以用test对象来访问其中的属性,springMVC会将属性值注入到test对象中的属性中。