java - Liferay + JSON + AJAX

标签 java json liferay

我有一个代码

@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 .

关于java - Liferay + JSON + AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13270776/

相关文章:

android - 我收到此错误 : java. lang.NullPointerException:lock ==null

liferay - 如何根据用户角色将用户引导至不同页面

java - 您必须在实例化之前注册此 ParseObject 子类

java - 在 jsp 页面中创建对象

java - 处理 json 和表单参数的 Spring MVC 方法

python - 将json数据读入DataFrame

liferay 博客管理中的 SEO 问题

java - 我如何在 portlet 中获得 Liferay 的 Hibernate Session 实现?

Java并发,什么情况下CompletableFuture.supplyAsync()会返回null

java - 将列表传递给另一个 jsp 文件