Java 将复杂输入从jquery传递到Spring MVC
我想要实现的是将参数从jquery传递到Spring控制器。我成功地将简单参数(一个字符串)从jquery传递到Spring,但如何对复杂数据执行同样的操作?Java 将复杂输入从jquery传递到Spring MVC,java,jquery,spring,spring-mvc,Java,Jquery,Spring,Spring Mvc,我想要实现的是将参数从jquery传递到Spring控制器。我成功地将简单参数(一个字符串)从jquery传递到Spring,但如何对复杂数据执行同样的操作? 例如:在Spring中,我期望一个POJO作为输入参数,这个POJO有一个String属性和一个List属性。 POJO: JQuery jq.post("/something", ????, function(data){ ... }); 我在不知道写什么的地方打问号:) 你能帮帮我吗? 谢谢,Viktor在js中: ajax.get
例如:在Spring中,我期望一个POJO作为输入参数,这个POJO有一个String属性和一个List属性。
POJO: JQuery
jq.post("/something", ????, function(data){ ... });
我在不知道写什么的地方打问号:)你能帮帮我吗?
谢谢,Viktor在js中:
ajax.get('api/checkout_patron/patron_id='+self.patronId())
在java中:
@RequestMapping(method= RequestMethod.GET,value = "/patron_id={patron_id}")
public @ResponseBody
Response getPatron(@PathVariable String patron_id){
}
以下是我使用以下方法映射的js请求:
@Controller
@RequestMapping(value = "/api/checkout_patron")
在类声明之前
这里我使用的是knockout js
,所以我使用这个模式来传递请求
我的技巧的第二个小例子:
var form={
sourceName : self.sourceName(),
sourceEmail :self.email()
}
ajax.post('api/source',JSON.stringify(form)).done(function(response){
});
这里获取数据:
@RequestMapping(method= RequestMethod.POST,consumes = "application/json")
public @ResponseBody
ResponseEntity<IWebApiResponse> addBudget(@RequestBody AddBudgetSourceForm form){
//your code to process data
}
请记住,表单类的名称和jsform
数据绑定中的名称应该相同(即js表单中已字符串化的参数的左侧)
更新:
您可以执行以下操作:
List var=new ArrayList();
var.add(form.getSourcename());
var.add(form.getSourceEmail())代码>
是的,你可以用json发送这样的数据
如果要为每件事发送单个数据,则不要使用List
。
而不是使用列表
并使用getter setter
在类
中定义所有必需的变量,谢谢您的回复!这意味着我应该用json来包装数据?例如:{1:something,2:??}实际上我不知道如何在json中创建列表。你能帮忙吗?thanks@Viktor-我已经更新了答案,如果有任何问题,请发布。hmmm。。保持微笑。。若你们有时间的话,看看MVVM体系结构教程,或者告诉我,我会给你们发邮件或者发邮件。。
var form={
sourceName : self.sourceName(),
sourceEmail :self.email()
}
ajax.post('api/source',JSON.stringify(form)).done(function(response){
});
@RequestMapping(method= RequestMethod.POST,consumes = "application/json")
public @ResponseBody
ResponseEntity<IWebApiResponse> addBudget(@RequestBody AddBudgetSourceForm form){
//your code to process data
}
public class AddBudgetSourceForm {
private String sourceName;
private String sourceEmail;
// getter and setter
}