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;


}

お客様は @ActionMapping 関数に設定してOKです。

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 をメソッド パラメーターとして使用します)。

たとえば、春を使用していないが、変更は簡単です。この SO answer を参照してください

于 2012-11-08T11:56:19.480 に答える