0

我有一个代码

@RenderMapping
    public ModelAndView model(RenderRequest renderRequest, ModelMap map) {

        map.put("form", form);

        ModelAndView view = new ModelAndView("view", map);

        PortletSession portletSession = renderRequest.getPortletSession(true);
        if(portletSession != null) {  
        MappingJacksonJsonView v = new MappingJacksonJsonView();
        view.setView(v);
        view.addObject("dataListCustomer", portletSession.getAttribute("listCustomer"));
        }

        init(renderRequest, view);
        return view;
    }

我有一个错误:

java.lang.IllegalArgumentException: application/json is not a supported mime type
    at com.liferay.portlet.MimeResponseImpl.setContentType(MimeResponseImpl.java:159)

错误是由view.setView(v);

如何将 listCustomer 添加到 JSON?在 listCustomer 我有一个 ModelMap


我有代码:

    @ResourceMapping(value="customer")
        public ModelAndView customer(
                ResourceRequest req,
                ResourceResponse res) {

    log.debug("List Customer Resource: " + context.getCustomer());

            ModelAndView mav = new ModelAndView();
            MappingJacksonJsonView v = new MappingJacksonJsonView();
            v.setBeanName("ajaxResult");

            mav.setView(v);
            mav.addObject("customer", context.getCustomer());

            return mav;


}

客户在@Act​​ionMapping 函数中设置,没问题。

在 JSP 中,我有:

<portlet:resourceURL escapeXml="false" id="customer" var="customer"/>

如何调用@ResourceMapping 函数?因为我 log.debug("List Customer Resource: " + context.getCustomer());在日志中看不到结果。

4

1 回答 1

2

对于 ajax(带有门户),您不能使用 RenderMapping(或 ActionMapping),您必须使用 ResourceMapping(如果需要,还使用 ​​ResourceRequest 和 ResourceResponse 作为方法参数)。

例如,不使用 spring 但更改是微不足道的,请参阅这个 SO answer

于 2012-11-08T11:56:19.480 回答