我正在尝试使用POST方法使用AJAX将两个参数发送到我的Spring REST控制器。但是,这些参数在我的控制器中显示为@PostMapping("/txToClose")
public ResultDto txToClose(HttpServletRequest request, HttpServletResponse response) throws BBException
{
logger.info("Called txToClose controller");
ResultDto resultDto = new ResultDto();
String txToClose = request.getParameter("txToClose");
String sno = request.getParameter("sno");
logger.info("Transactions to close :" + txToClose + ", Serial Num :" + sno);
}
。如果我遗漏了任何东西,请找到代码并告诉我。
my-service.service.js
export default class MyService {
constructor() {
this.items = [''];
}
getItem() {
return this.items;
}
}
MyService.$inject = ['SomeOtherService'];
答案 0 :(得分:0)
像这样创建类:
class Myclass{
private String txToClose;
private String sno;
// getters setters
}
并在你的方法中这样:
@PostMapping("/txToClose")
public ResultDto txToClose(@RequestBody Myclass class ) throws BBException
{
// your logic
}
答案 1 :(得分:0)
我认为代码中没有工作的部分是request.getParameter(),因为在json数据的情况下它无法识别参数和值。 而是使用这样的东西:
StringBuilder sb = new StringBuilder();
BufferedReader reader = request.getReader();
try {
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append('\n');
}
}
finally {
reader.close();
}
System.out.println(sb.toString());
在你的控制器中使用上面的逻辑来处理json请求。请参考这个link以获取进一步的想法,以便在被视为HttpServeletRequest时处理json。
答案 2 :(得分:0)
使用
解决public ResultDto txToClose(HttpServletRequest request, HttpServletResponse response,@RequestBody ObjectNode json) throws BBException {
logger.info("Called txToClosecontroller");
ResultDto result = new ResultDto();
String txToClose= json.get("txToClose").asText();
}