首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Spring2.5的Liferay中的Spring-json问题

使用Spring2.5的Liferay中的Spring-json问题
EN

Stack Overflow用户
提问于 2010-06-18 01:19:43
回答 1查看 907关注 0票数 0

我正在尝试在一个使用Liferay 5.1.2完成的项目中使用spring-json.1.3.1库,其中包括Spring2.5。

在项目网站instructions之后,我设法使请求命中了我的控制器,但在通过modelAndView对象返回json对象时,它失败了,错误如下:

代码语言:javascript
复制
java.lang.IllegalArgumentException at com.liferay.portlet.MimeResponseImpl.setContentType(MimeResponseImpl.java:162)

我已经检查过Liferays的源代码,它会检查它设置的contentType是否在一个harcoded列表中,如果不是,它会抛出一个IllegalArgumentException,这就是正在发生的事情。

这是我的视图解析器代码:

代码语言:javascript
复制
<bean id="xmlFileViewResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
代码语言:javascript
复制
      /WEB-INF/context/views.xml                      1        

我的views.xml代码:

代码语言:javascript
复制
<beans>
   <bean name="jsonView" class="org.springframework.web.servlet.view.json.JsonView"/> 

和我的控制器:

代码语言:javascript
复制
@SuppressWarnings("unchecked")
@Override
public ModelAndView handleRenderRequest(RenderRequest arg0,
   RenderResponse arg1) throws Exception {

   Map model = new HashMap();
         model.put("firstname", "Peter");
         model.put("secondname", "Schmitt");

   return new ModelAndView("jsonView", model);
} 

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-18 19:32:54

这个问题是因为您需要将窗口状态设置为独占模式,所以它可以工作:

代码语言:javascript
复制
<portlet:renderURL var="jsonRequest" windowState="<%= LiferayWindowState.EXCLUSIVE.toString() %>"><portlet:param name="actionType" value="fetchGames"/></portlet:renderURL>

来自MimeResponseImpl.java的一段代码

代码语言:javascript
复制
public void setContentType(String contentType) {
    if (Validator.isNull(contentType)) {
        throw new IllegalArgumentException();
    }

    Enumeration<String> enu = _portletRequestImpl.getResponseContentTypes();

    boolean valid = false;

    if (getLifecycle().equals(PortletRequest.RESOURCE_PHASE) ||
        _portletRequestImpl.getWindowState().equals(
            LiferayWindowState.EXCLUSIVE)) {

        valid = true;
    }

如果有人需要更多帮助,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3063953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档