Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将json对象传递给控制器_Jquery_Json_Spring_Spring Mvc - Fatal编程技术网

Jquery 将json对象传递给控制器

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({

我需要你的帮助。我必须将json对象发送到SpringMVC控制器,然后将其取回,并在视图的字段中替换它。我的项目是SpringMVC。这对我来说是新的。我正在发布控制器和jQuery代码

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
部分。我必须在控制器中包含哪些更改?