我有关于.ftl的页面,当我输入localhost:8080 / ui / about时会调用它 我把下面的代码块放在里面。通过SendToServlet()函数我试图将用户信息发送到我的控制器,即OAuthController.java
function SendToServlet(){
$.ajax({
url: "localhost:8080/ui/about",
type: "POST",
data: JSON.stringify({ user:jsonObj}),
contentType: 'application/json',
success: function(result) {
alert(done);
},
error: function(xhRequest, ErrorText, thrownError) {
alert(JSON.stringify(jsonObj));
}
});
}
</script>
My Spring MVC Controller类代码具有以下实现 - 它所做的只是它接受用户的信息然后设置当前用户:
@Controller
@RequestMapping("/about")
public class OAuthController {
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String post( @RequestBody String items, HttpServletRequest request, HttpServletResponse response)
{
String jsonResp = items;//sb.toString();
ArrayList<String> usercredentials = new ArrayList<String>();
usercredentials = parseJson(jsonResp);
UserMethods usermethods = new UserMethods();
usermethods.setCurrentUser (usercredentials);
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
return "{\"success\":\"\"}";
}
public ArrayList<String> parseJson(String json){
}
}
我的问题是控制器永远不会被调用,实际上我从来没有看到Post请求通过Firebug发送到任何地方。我花了几天时间,但仍然没有运气。你有什么建议吗?
答案 0 :(得分:0)
你不需要像这样打电话吗?
url: "localhost:8080/ui/about/post",
但首先这样做:
@RequestMapping(method = RequestMethod.POST, value = "/post")
答案 1 :(得分:0)
您需要将值绑定到您的函数。您的网址localhost:8080/ui/about/post
仅用于定位控制器,但它不会执行任何功能,因为您没有调用任何函数。
要调用该函数,您必须这样做:
@RequestMapping(method = RequestMethod.POST, value ="/anyValue")
public String anyFunctionName(anyParam){...}
上述功能将绑定到网址localhost:8080/ui/about/anyValue
。
答案 2 :(得分:0)
尝试添加.html怎么样?应用程序不会自动添加它。