放置在ModelMap中的表单对象似乎在调用某个操作时被清除

时间:2012-04-23 11:04:30

标签: spring spring-mvc

我有一个控制器,它处理两种形式。

在初始化表单方法中我设置所有的东西requird来渲染屏幕。并将表单对象放到模型映射中。

在渲染阶段,渲染成功完成。但是当提交完成并调用@ActionMapping时。

我得到了例外。

org.springframework.web.portlet.handler.PortletSessionRequiredException: Session attribute 'someForm' required - not found in session
        at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter$PortletHandlerMethodInvoker.raiseSessionRequiredException(AnnotationMethodHandlerAdapter.java:554)
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveModelAttribute(HandlerMethodInvoker.java:758)
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:356)
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
        at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:360)
        at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.doHandle(AnnotationMethodHandlerAdapter.java:347)
        at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.handleAction(AnnotationMethodHandlerAdapter.java:281)
        at org.springframework.web.portlet.DispatcherPortlet.doActionService(DispatcherPortlet.java:641)
        at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:519)
        at org.springframework.web.portlet.FrameworkPortlet.processAction(FrameworkPortlet.java:460)
        at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:70)
        at com.nomadsoft.cortex.infrastructure.spring.security.SecurityContextAuthenticatedPortletFilter.doFilter(SecurityContextAuthenticatedPortletFilter.java:99)
        at sun.reflect.GeneratedMethodAccessor554.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

如果我将对象放入我从Request对象获取的HTTP会话中并通过该过程进行操作,那么每件事情都没有问题

我知道;当我使用模型地图时,我知道出了什么问题。

在应用程序的其余部分中,还有更多其他控制器可以正常工作。

任何线索都会受到高度关注。

1 个答案:

答案 0 :(得分:0)

您的表单似乎需要“相同表单”属性(Session attribute 'someForm' required)。 必须在您的页面中调用此属性。