-
SpringMVC list参数问题20
前端用ajax请求并传参,后台用SpringMVC接收参数,参数为list的形式如,List<User> users,
前台传的格式形如 {users:{{name:"Tom",age:12},{name:"Petter",age:14}}}(但不确定是不是这么传),
请问应该怎么实现?
我上网查过并测试成功的有,1.传单个参数,2.单个对象(用json传),3.甚至传String的数组(String[] ary)都可以,但是没有找到可以传对象的list或数组形式的,希望知道的速速回复,谢谢了。
2012年1月05日 09:56
10个答案 按时间排序 按投票排序
-
采纳的答案
MVC的List里面只能是简单的数据类型,如Integer,String.
可以不用List,直接传个简单的String(json),
把数据封装为json即可。
参考: http://www.iteye.com/problems/38116
2012年1月06日 21:35
-
我也来回复,其实你可以写一个JAVABEAN ,把List<User> users 作为该JAVAbean的参数;这样就可以提交表单后台转换为JAVABEAN ,从JAVABEAN中取出LIST.
public class JAVABEAN {
List<User> users = new ArrayList<User>() ;
//get set 方法。。。。
}
<input name="users[0].name" type="text" value ="111" />
<input name="users[0].age" type="text" value ="111" />
<input name="users[1].name" type="text" value ="111" />
<input name="users[1].age" type="text" value ="111" />
@RequestMapping
public @ResponseBody
String saveGridExtendMsg(JAVABEAN javabean) {
logger.debug("save gridExtendMsgs : " + gridExtendMsgs );
//gridMsgInfoService.saveGridExtendMsg(gridMsgModel.getGridExtendMsgs()); //gridMsgModel.getGridExtendMsgs()
return "1";
}2014年4月15日 15:09
-
String users = {users:{{name:"Tom",age:12}{name:"Petter",age:14}}}
利用阿里巴巴的fastjson.jar
User user = JSON.parseObject(users,方法名.class);
这样就生成了user对象,然后你再通过user.getXX()得到各个属性放入list中就可以了。。希望对你有帮助。。2012年1月07日 10:20
-
前台可以传一个JSON对象格式的字符串,后台再用jsonObj将这个字符串转换成javaBean对象。前台的字符串可以用jquery的serializeArray方法实现
2012年1月06日 21:36
-
对于 JSON 来说, 传单个参数, 单个对象, 对象数组, 都是一样的.
前台用 JSON javascript lib 转换成 JSON 发送,
后台找个 JSON 的 lib 转换成对象就可以了...
这样的lib 实在太多...随便网上找一个就OK2012年1月06日 15:14
-
前台到后台 一般都是传一个字符串。至于这个字符串什么形式,根据实际场景而定。
JOSN是主流的也是也是一种高效的形式。你如果想直接在前后台那得用到RMI(Remote Method Invoke)远程调用技术。或者EJB远程调用。这主要取决于你前台的客户端是不是Swing 是Swing的话 就可以直接采用远程调用技术。将参数对象持久化后直接传到远程服务器。不需要转化。一般的web开发是在前台间数据以一定的字符格式加工包装后传到后,再将字符数据转化为java对象,再进行业务逻辑处理 。2012年1月05日 18:01
-
应该无法传递对象。毕竟http最终的传递还是 url?k=v&k1=v1&k3=v3..的形式,
你可以将 {users:{{name:"Tom",age:12},{name:"Petter",age:14}}}整个字符串传过去,然后根据你的规则将其变成list。因此不管是json还是其他什么其实传输的都是字符串而已。
比如struts 之所以可以使用如: user.name user.age形式的参数到后台,并且可以直接拿到user对象,都是由于其框架提供的对请求相应参数进行封装的结果。
要直接使用http请求传递对象是不太可能。楼主可在查查。祝好运了。
2012年1月05日 14:32
相关推荐
### Spring MVC 无法直接接收 List 类型参数的问题详解 #### 问题背景 在 Web 开发过程中,前后端数据交互是必不可少的一部分。对于基于 Java 的 Spring MVC 框架而言,处理这种交互通常需要理解如何正确地接收前端...
Spring MVC提供了多种方式来接收前端传递的数据,包括单独的参数、数组、列表以及自定义对象。本教程将重点讲解如何接收ajax和form表单传递的集合参数。 一、接收Ajax传递的集合参数 1. JSON格式数据:Ajax通常...
本文将深入解析SpringMVC如何处理GET和POST请求中的参数,以及如何使用@RequestParam和@RequestBody注解。 1. GET请求 GET请求通常用于获取资源,其参数直接附加在URL路径后面,以键值对的形式存在。例如,`/api/...
这时可以使用`@RequestParam`的`multiValue`属性,或者直接使用`List`或`Set`作为参数类型。 ```java @RequestMapping("/example") public String handleRequest(@RequestParam("files") MultipartFile[] files) { ...
public List<SearchResult> search(@RequestParam("keyword") String keyword) { // ... } ``` 对于POST请求,参数可以放在请求体中(通常为JSON或表单数据)。如果参数是表单数据,可以同样使用`@...
在上面的代码中,`@RequestParam("productIds")`注解用于将前端提交的名为"productIds"的数组参数绑定到`List<Long> productIds`变量上。Spring MVC会自动解析请求参数,并将其转换为合适的类型。`productService....
标题“spring mvc 封装list到后台 SpringMVC_Multi_Row”涉及到的是Spring MVC框架中如何处理前端传入的包含多行数据的列表。在Web应用开发中,经常需要将用户在页面上填写的多行数据(如表格)一次性提交到后台进行...
在SpringMVC框架中,处理来自前端的各种请求参数是一项核心任务。本文将全面总结SpringMVC接收请求参数的所有方式,并探讨其背后的工作机制。 1. GET方法请求参数处理: 当使用GET方法发送请求时,参数通常附加在...
在后端,控制器可以声明一个List类型的参数,Spring会自动将表单数据转换为User对象列表。这种方法减少了手动处理数据的步骤,提高了代码可读性。 3. **将Json对象序列化成Json字符串提交,以List接收** 当表单...
3. **集合类型**:SpringMVC可以处理各种集合类型的参数,如List、Set、Array等。在接收List时,可以使用`@RequestParam("idList[]")`来指定参数名,这样Spring MVC可以正确地解析数组或列表参数。 4. **对象序列化...
1. **请求体编码问题:** 在处理JSON格式的数据时,确保前后端编码一致,避免出现乱码等问题。 2. **异常处理:** 在处理前端传来的数据时,应当考虑到可能出现的异常情况,如数据类型不匹配等,并作出相应的处理。 ...
"springmvc3+json参数传递后台接收json参数"这个主题涉及到的是如何使用Spring MVC 3版本接收前端通过JSON格式发送的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易于人阅读和编写,...
快速解决SpringMVC @RequestBody 用map接收请求参数的问题 在 SpringMVC 中,使用 @RequestBody 注解可以将请求体中的数据转换为 Java 对象,但是在使用 map 接收请求参数时,经常会遇到一些问题。本文将讨论如何...
SpringMVC 提供了多种参数绑定的方式,包括默认的参数绑定、简单类型参数绑定、POJO 类型参数绑定、包装类型参数绑定等,除此之外还提供了自定义参数转换的功能,允许开发者根据需求实现自定义的参数转换。
此外,还提供高级参数绑定,如数组类型和List类型。 @RequestMapping注解在SpringMVC中被广泛使用,用于方法的映射。该注解可以用来映射请求路径、限定请求方法等,并且可以用于类级别,实现目录分级管理。 ...
在SpringMVC参数绑定过程中,当客户端发送请求时,其中的key/value数据会被处理,通过参数绑定组件转化成Controller方法的形参。早期版本的SpringMVC使用`PropertyEditor`来进行字符串到Java对象的转换,而后期则...
- **参数绑定**:除了基本的数据类型外,还可以处理复杂的对象类型,如List、Map等。 - **数据回显**:即表单提交后自动填入之前输入的数据。 - **上传图片**:通过配置文件上传处理器,支持图片等文件的上传。 - **...
总之,扩展Spring MVC以支持绑定JSON格式的请求参数,需要理解模型绑定机制,配置合适的`HttpMessageConverter`,以及处理可能出现的验证、安全等问题。通过这些步骤,我们可以创建出高效、健壮且易于维护的RESTful...
6. 接收对象List集合,处理数组或集合类型的参数。 7. 接收JSON格式的请求,配合`@RequestBody`。 【文件上传】 文件上传需要: 1. 引入相关依赖,如Apache Commons FileUpload。 2. 添加文件解析器配置。 3. 编写...
List<Item> itemList = new ArrayList(); itemList.add(new Item("商品1", "描述1", 100)); itemList.add(new Item("商品2", "描述2", 200)); // 将查询结果放入Model ModelAndView modelAndView = new ...