Jquery 将json对象传递给控制器
我需要你的帮助。我必须将json对象发送到SpringMVC控制器,然后将其取回,并在视图的字段中替换它。我的项目是SpringMVC。这对我来说是新的。我正在发布控制器和jQuery代码Jquery 将json对象传递给控制器,jquery,json,spring,spring-mvc,Jquery,Json,Spring,Spring Mvc,我需要你的帮助。我必须将json对象发送到SpringMVC控制器,然后将其取回,并在视图的字段中替换它。我的项目是SpringMVC。这对我来说是新的。我正在发布控制器和jQuery代码 setOperator=函数(newOperator){ //警报(“操作员”+新操作员); if(newOperator='='){ //警报(“newOperator is=”); //AJAX、JSON json_result={“jsn_result”:lastNumber}; $.ajax({
setOperator=函数(newOperator){
//警报(“操作员”+新操作员);
if(newOperator='='){
//警报(“newOperator is=”);
//AJAX、JSON
json_result={“jsn_result”:lastNumber};
$.ajax({
类型:“POST”,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
url:“http://localhost:8080/calc",
数据:JSON.stringify(JSON_结果),//注意这很重要
成功:功能(结果){
log(json_result.jsn_result);
}
});
equalsPressed=true;
计算();
返回;
}
如果(!equalsPressed){
//警报(“后跟运算符(+、-、*、/)”;
计算();
}
equalsPressed=false;
操作员=新操作员;
运算符集=真;
lastNumber=parseFloat(currNumberCtl.val());
},
嗯,你必须做几件事
假设您希望向控制器传递一个JSON,如下所示:
{
"name": "The name",
"surname": "The surname"
}
{
"passedFullName": "The name & The surname"
}
import java.io.Serializable;
public class InputJson implements Serializable
{
private static final long serialVersionUID = -9159921073367603471L;
private String name;
private String surname;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getSurname()
{
return surname;
}
public void setSurname(String surname)
{
this.surname = surname;
}
}
@RequestMapping(method = { RequestMethod.POST }, value = { "/calc" })
public ResponseEntity<OutputJson> handleJson(@RequestBody InputJson input) throws Exception
{
OutputJson result = new OutputJson();
result. setPassedFullName(input.getName()+" & "+input.getSurname());
return new ResponseEntity<OutputJson>(result, HttpStatus.OK);
}
假设您希望返回视图中的JSON如下所示:
{
"name": "The name",
"surname": "The surname"
}
{
"passedFullName": "The name & The surname"
}
import java.io.Serializable;
public class InputJson implements Serializable
{
private static final long serialVersionUID = -9159921073367603471L;
private String name;
private String surname;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getSurname()
{
return surname;
}
public void setSurname(String surname)
{
this.surname = surname;
}
}
@RequestMapping(method = { RequestMethod.POST }, value = { "/calc" })
public ResponseEntity<OutputJson> handleJson(@RequestBody InputJson input) throws Exception
{
OutputJson result = new OutputJson();
result. setPassedFullName(input.getName()+" & "+input.getSurname());
return new ResponseEntity<OutputJson>(result, HttpStatus.OK);
}
你必须:
为输入JSON和输出JSON创建模型
创建一个能够接收输入JSON的方法并对其进行管理
我会做以下几件事:
输入模型创建:我将创建如下java类:
{
"name": "The name",
"surname": "The surname"
}
{
"passedFullName": "The name & The surname"
}
import java.io.Serializable;
public class InputJson implements Serializable
{
private static final long serialVersionUID = -9159921073367603471L;
private String name;
private String surname;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getSurname()
{
return surname;
}
public void setSurname(String surname)
{
this.surname = surname;
}
}
@RequestMapping(method = { RequestMethod.POST }, value = { "/calc" })
public ResponseEntity<OutputJson> handleJson(@RequestBody InputJson input) throws Exception
{
OutputJson result = new OutputJson();
result. setPassedFullName(input.getName()+" & "+input.getSurname());
return new ResponseEntity<OutputJson>(result, HttpStatus.OK);
}
然后我将创建一个类似这样的类(用于输出JSON):
然后在您的控制器中,我将创建如下方法:
{
"name": "The name",
"surname": "The surname"
}
{
"passedFullName": "The name & The surname"
}
import java.io.Serializable;
public class InputJson implements Serializable
{
private static final long serialVersionUID = -9159921073367603471L;
private String name;
private String surname;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getSurname()
{
return surname;
}
public void setSurname(String surname)
{
this.surname = surname;
}
}
@RequestMapping(method = { RequestMethod.POST }, value = { "/calc" })
public ResponseEntity<OutputJson> handleJson(@RequestBody InputJson input) throws Exception
{
OutputJson result = new OutputJson();
result. setPassedFullName(input.getName()+" & "+input.getSurname());
return new ResponseEntity<OutputJson>(result, HttpStatus.OK);
}
@RequestMapping(方法={RequestMethod.POST},值={”/calc})
public ResponseEntity handleJson(@RequestBody InputJson input)引发异常
{
OutputJson结果=新的OutputJson();
result.setPassedFullName(input.getName()+“&”+input.getNames());
返回新的响应状态(结果,HttpStatus.OK);
}
当然你可以制作更复杂的对象。。。这些只是一个简单的样本
我希望这有助于首先,为json数据创建一个Java对象,它可能有助于使用在线生成器: 然后更改您的方法声明:
@RequestMapping(method = RequestMethod.Post,consumes="application/json")
public @ResponseBody String printWelcome(@RequestBody YourObject model) {
return "calculator";
}
因此,基本上要记住Http方法(POST),您接受数据的格式(json、xml或两者),用于指示必须从Http正文中恢复数据的
@RequestBody
,以及@ResponseBody
,如果您的内容必须是原始的或序列化的,而不是调用您的视图。欢迎使用stackoverflow!请阅读并分享您迄今为止尝试的代码。请将代码作为文本包含在code
部分。我必须在控制器中包含哪些更改?