我有跟随多个参数的最新jquery v aajx调用。
在java代码中,我只能得到第一个参数值,其余的找到了null。
$.ajax({
url : '<portlet:resourceURL id="entitledRequest"/>',
data: '<c:out value="pfx= ${account.accountNumber}-${outletUI.outlet}-${count}&acc=${account.accountNumber}" />',
cache: false,
success : function(result) {
//targetElem.html(result); update uI
}
});
以下是我的java代码只有第一个参数不为null之后所有params都为null,我有调试http请求所有参数都存在于请求对象中任何线索什么错在这里?
Controller("ajaxRequestController")
@RequestMapping(value = "VIEW")
public class AjaxRequestController implements PortletConfigAware {
@ResourceMapping("entitledRequest")
public void getServiceAutoComplete(ResourceRequest request, ResourceResponse response) throws IOException {
String elemPrefix = request.getParameter("pfx");
String acc = request.getParameter("acc"); // found null
String mac = request.getParameter("mac"); // found null
}...
答案 0 :(得分:2)
使用@RequestParam
注释来阅读参数。
@ResourceMapping("entitledRequest")
public void getServiceAutoComplete(@RequestParam("pfx") String elemPrefix, @RequestParam String acc, @RequestParam String mac, ResourceRequest request, ResourceResponse response) throws IOException {
}
Parameters
发送的Ajax
不属于PortletNamespace
。因此,它们不属于ResourceRequest
,但可以在普通HTTPServletRequest
中找到它们。 Spring
会搜索@RequestParam
中的HTTPServletRequest
个名称。
您可以使用我建议的方法 - 或者 - 您可以在<portlet:namespace/>
调用中将Ajax
添加到参数中,以保持Controller
代码的完整性。