fixed environmental bug for portlet

fixed issue preventing rendering of views otuside of view states
This commit is contained in:
Keith Donald
2008-05-05 16:19:51 +00:00
parent 9d9fa464bf
commit c9179d9d21
2 changed files with 10 additions and 2 deletions

View File

@@ -85,6 +85,10 @@ public class FlowViewStateManager extends StateManager {
return super.restoreTreeStructure(context, viewId, renderKitId);
}
RequestContext requestContext = RequestContextHolder.getRequestContext();
if (!requestContext.inViewState()) {
logger.debug("Not in a view state; no state to restore");
return null;
}
SerializedView view = (SerializedView) requestContext.getViewScope().get(SERIALIZED_VIEW_STATE);
if (view == null || !view.viewId.equals(viewId)) {
logger.debug("No matching view in view scope");

View File

@@ -48,8 +48,7 @@ public class MvcEnvironment extends StaticLabeledEnum {
* @return the web environment the context is running in, or null if not running in a web environment
*/
public static MvcEnvironment environmentFor(ApplicationContext applicationContext) {
if (ClassUtils.isPresent("javax.portlet.PortletContext")
&& applicationContext instanceof ConfigurablePortletApplicationContext) {
if (ClassUtils.isPresent("javax.portlet.PortletContext") && isPortletApplicationContext(applicationContext)) {
return MvcEnvironment.PORTLET;
} else if (applicationContext instanceof WebApplicationContext) {
return MvcEnvironment.SERVLET;
@@ -58,4 +57,9 @@ public class MvcEnvironment extends StaticLabeledEnum {
}
}
private static boolean isPortletApplicationContext(ApplicationContext applicationContext) {
return ClassUtils.isPresent("org.springframework.web.portlet.context.ConfigurablePortletApplicationContext")
&& applicationContext instanceof ConfigurablePortletApplicationContext;
}
}