我有一个密码
@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函数中设置客户,可以。
在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。