我有一个密码

@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());的结果。

最佳答案

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

例如,不使用spring而是进行更改,这很简单,see this SO answer

08-28 17:47