SpringMVC接收list数据

来源:互联网 发布:mac类似xmind 编辑:程序博客网 时间:2024/06/02 03:45

在使用springmvc时,难免会遇到需要接收一个封装javaBean的list数据,那么如何处理这些数据了?


一:创建于一个包含此list的包装类,在springmvc的方法参数中直接用包装类接收。但是使用包装类也是有限制的,必须说明前台传递的javaBean是包装类中list的元素

jsp中datagrid代码:

field : 'usergysid', hidden : true, formatter: function(value,row,index){  return '<input type="hidden" name="lists['+index+'].userid" value="'+row.userid+'" />'; }

java代码:

public class SysuserCustomVo {private List<User> lists;

public class User{     private userid;     private username;

RequestMapping("/xxxxxxxxx")public @ResponseBody SubmitResultInfo gysypmladdsubmit(HttpSession session,String[] indexs,SysuserCustomVo customVo)throws Exception


二:这种方式也是我推荐的,将前端的list数据转换成json数据,然后通过jackson解析成List数据


var param=JSON.stringify($('#custom_filt_table').datagrid("getData")); 

后台接收数据:

public String filtop(String json) throws Exception {Filtrate filtrate = new Filtrate(); //创建一个实体类接收json分解后的数据json = json.replaceAll(""", "\"");   //由于传递的json中有双引号,在springmvc中会自动转译,所以需要全部替换回来List<Filtrate> filts = parameter2JavaBean.setJson2List(filtrate, json);
public class parameter2JavaBean {public static ObjectMapper  mapper = new ObjectMapper();                                                                    /**           * 返回泛型 List<T>           * @throws IOException            * @throws JsonMappingException            * @throws JsonParseException            *            */        public static <T> List<T> setJson2List(T t ,String str) throws JsonParseException, JsonMappingException, IOException{          Class<?> clazz = t.getClass();          JavaType javaType = getCollectionType(ArrayList.class, clazz);          return  mapper.readValue(str,javaType);    }    /**     * 获取泛型的Collection Type     *      * @param collectionClass     *            泛型的Collection     * @param elementClasses     *            元素类     * @return JavaType Java类型     * @since 1.0     */     public static JavaType getCollectionType(Class<?> collectionClass,       Class<?>... elementClasses) {        return mapper.getTypeFactory().constructParametricType(collectionClass,elementClasses);  }


想了解jackson的可以看看:http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html


如何转换复杂类型的:http://www.cnblogs.com/quanyongan/archive/2013/04/16/3024993.html






0 0
原创粉丝点击