我需要你的帮助。我必须将json对象发送到spring mvc控制器并将其取回并在视图中的字段中替换它。我的项目是Spring MVC。这对我来说很新。我发布了Controller和jQuery代码。
setOperator = function(newOperator) {
// alert("operator " + newOperator);
if (newOperator == '=') {
// alert("newOperator is = ");
//AJAX, JSON
json_result = {"jsn_result" : lastNumber};
$.ajax({
type: "POST",
contentType : 'application/json; charset=utf-8',
dataType : 'json',
url: "http://localhost:8080/calc",
data: JSON.stringify(json_result), // Note it is important
success :function(result) {
console.log(json_result.jsn_result);
}
});
equalsPressed = true;
calculate();
return;
}
if (!equalsPressed) {
// alert("followed by an operator (+, -, *, /)");
calculate();
}
equalsPressed = false;
operator = newOperator;
operatorSet = true;
lastNumber = parseFloat(currNumberCtl.val());
},

@Controller
@RequestMapping("/")
public class CalculatorController {
@RequestMapping(method = RequestMethod.GET)
public String printWelcome(ModelMap model) {
return "calculator";
}
}

答案 0 :(得分:0)
嗯,你必须做几件事 假设你想要向控制器传递一个像这样的JSON:
{
"name": "The name",
"surname": "The surname"
}
让我们假设你想在视图中回到像这样的JSON:
{
"passedFullName": "The name & The surname"
}
你必须: 为输入JSON创建模型并输出JSON 创建一个能够接收输入JSON并管理它的方法
我会做以下事情: 输入模型创建:我创建一个这样的java类:
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;
}
}
然后我会创建一个这样的类(输出JSON):
import java.io.Serializable;
public class OutputJson implements Serializable
{
private static final long serialVersionUID = -1504974498083180855L;
private String passedFullName;
public String getPassedFullName()
{
return passedFullName;
}
public void setPassedFullName(String passedFullName)
{
this.passedFullName = passedFullName;
}
}
然后在你的控制器中我会创建一个这样的方法:
@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);
}
当然你可以制作更复杂的物体......这些只是一个简单的样本 我希望这可以帮助
答案 1 :(得分:0)
首先,为json数据创建一个Java对象,它可能有助于使用在线生成器:JsonSchema2Pojo 然后更改方法声明:
@RequestMapping(method = RequestMethod.Post,consumes="application/json")
public @ResponseBody String printWelcome(@RequestBody YourObject model) {
return "calculator";
}
所以基本上记住Http方法(POST),你接受数据的格式(json,xml或两者),@RequestBody
表示必须从Http体中恢复数据,@ResponseBody
1}}如果您的内容必须是原始内容或序列化内容,而不是调用您的视图。