0

我有以下带有多个参数的最新 jquery v aajx 调用。

在java代码中,我只能得到第一个参数值,其余的都是空的。

$.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代码,只有第一个参数不为空,之后所有参数都为空,我有调试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

}...
4

1 回答 1

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但可以在 normal 中找到HTTPServletRequestSpring搜索 中的@RequestParam名称HTTPServletRequest

您可以使用我建议的方法 - 或者 - 您可以<portlet:namespace/>在调用中添加参数以Ajax保持Controller代码完整。

于 2013-07-18T13:46:57.833 回答