简单的jsf2.0应用程序:javax.faces.application.ViewExpiredException无法恢复视图

时间:2012-08-23 10:17:40

标签: jsf-2 primefaces viewexpiredexception

在一个简单的jsf2.0应用程序中,我收到此异常:javax.faces.application.ViewExpiredException无法恢复视图。

在控制台中我收到以下错误: org.portletfaces.bridge.BridgeException:必须先调用setPortletContext(PortletContext)

当我在不使用Primefaces jar的情况下执行我的应用程序时,它正常工作。但是在addind Primefaces jar之后我开始得到这个例外。

我正在使用Tomcat 7.2。 编辑:应用程序中只有3个页面,没有支持bean ..第一页上的链接正在调用第二页。但是,当我点击链接时,我收到此错误,并且不显示第二页。 无法理解问题的原因。请帮忙。

1 个答案:

答案 0 :(得分:2)

  

应用程序中只有3个页面,没有支持bean。第一页上的链接正在调用第二页。但是,当我点击链接时,我收到此错误,并且不显示第二页。

如果您通过UICommand链接/按钮导航,就会发生这种情况。你根本不应该通过POST链接/按钮导航,而只需通过GET链接/按钮。

将普通UICommand链接/按钮错误地用于页面到页面导航的所有UIOutcomeTarget链接/按钮替换掉。换句话说,将<h:commandButton>替换为<h:button>,将<h:commandLink><p:commandLink>替换为<h:link>,将<p:commandButton>替换为<p:button>

即。不要使用

<h:form>
    <p:commandButton value="Go to next page" action="nextpage" />
</h:form>

但请改用

<p:button value="Go to next page" outcome="nextpage" />

另见: