我是 jquery、js、java 等领域的新手。我正在使用 spring mvc maven。
我有一个 jsp 文件,其中有两个具有不同 url 的 post 函数,它们与同一 Controller 中的两种不同方法相匹配。
所以我期望=>
caseAsend
(在 myTest.jsp 中)将数据发送到caseAHandler
(在 myController.java 中)caseBend
(在 myTest.jsp 中)将数据发送到caseBHandler
(在 myController.java 中)
但是 caseAsend
和 caseBsend
最终都到达 myController.java 中的相同处理程序
[note] caseAsend
、caseBsend
在jsp文件中被不同的行为调用,在 Controller 中也需要进行不同的处理。所以应该单独处理
[问]如何在 myController.java 中的 post ajax
和 handling method
之间进行 1:1 映射。
为什么两个帖子都会使用相同的方法,即使网址不同?
[我的代码是这样的]:
1) myTest.jsp
function caseAsend(title, id){
$.ajax({
url:'/test/{caseA}.html',
data: 'title='+title+'&id='+id+'&something'+something,
type:"POST",
success: function(response){
alert('caseA done');
}
});
}
function caseBsend(title, id){ //something wrong
$.ajax({
url:'/test/{caseB}.html',
data: 'title='+title+'&id='+id+'&somethingelse='+somethingelse,
type:"POST",
success: function(response){
alert('caseB done!');
}
});
}
2) myController.java
@RequestMapping(value="/test/{caseA}", method = RequestMethod.POST)
public @ResponseBody String caseAHandler(@RequestBody String response) {
…
...
}
@RequestMapping(value="/test/{caseB}", method = RequestMethod.POST)
public @ResponseBody String caseBHandler(@RequestBody String response) {
{
….
…
}
几天来我一直在寻找类似的其他答案,但我无法真正清除它。我在这里做错了什么?
也许对于熟悉这个世界的人来说,这就是如此明显或简单。但我无法弄清楚为什么两个帖子即使使用不同的网址也会采用相同的方法。如果有人解决这个问题,我真的很感激。
最佳答案
{} 中的值是 URL 占位符。因此,您的 caseAHandler 将对任何/test/a、/test/bb 等 URL 使用react。
如果您需要单独的处理程序对单独的 URL 使用react,请尝试删除 {}。
@RequestMapping(value="/test/caseA", method = RequestMethod.POST)
@RequestMapping(value="/test/caseB", method = RequestMethod.POST)
在 JSP 中也是如此
关于java - 同一 Controller 中的多个 post ajax 到不同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30186097/