我是这个世界的jquery,js,java等的新手。我正在使用spring mvc maven。
我有一个带有两个post函数的jsp文件,它们具有不同的url,它与同一个控制器中的两个不同方法匹配。
所以我期待=>
caseAsend
(在myTest.jsp中)将数据发布到caseAHandler
(在myController.java中)caseBend
(在myTest.jsp中)将数据发布到caseBHandler
(在myController.java中)但是caseAsend
和caseBsend
都结束了myController.java中的相同处理程序
[note] caseAsend
,caseBsend
由jsp文件中的不同行为调用,并且还需要在控制器中进行不同的处理。所以应该单独处理
[问]如何在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) {
{
….
…
}
我已经看了几天类似的其他答案,但我无法清除它。我在做什么不正确?
也许对某个人了解这个世界是如此明显或简单。但我无法清楚为什么即使使用不同的网址,这两个帖子都采用相同的方法。如果有人清楚这一点,我真的很感激。答案 0 :(得分:1)
{}中的值是一个URL占位符。所以你的caseAHandler会对任何/ test / a,/ test / bb等URL做出反应。
如果您需要单独的处理程序,请尝试删除{}。
@RequestMapping(value="/test/caseA", method = RequestMethod.POST)
@RequestMapping(value="/test/caseB", method = RequestMethod.POST)
在JSP中也是如此