如何停止JSF1.2停止重新加载同一页面

How to stop JSF1.2 to stop reloading same page

我正在使用 JSF1.2

我们将打开两个选项卡 1 和选项卡 2,并且在提交所有选项卡之前不会关闭会话。

这就是我正在尝试的-

依次提交tab1。它将导航到指定页面,然后加载带有 tab2 数据的 tab1 页面。

虽然如果我打开并提交一个选项卡,那么它只会返回到定义的页面。

我觉得这是因为它在会话中创建并保存了两个视图数据,并且每次都不断检查视图会话。

这是我的 bean class 看起来像 -

public class testbean {

    public testbean() {
        initilize();
    }

    private void initilize() {
       Map<String, Object> session = 
      FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
      controller = getDataFromSession(session);
   }

}

脸-config.xml

<managed-bean>
    <managed-bean-name>testbean</managed-bean-name>
    <managed-bean-class>com.test.testbean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-case>
    <from-action>#{testbean.submit}</from-action>
    <from-outcome>Page4</from-outcome>
    <to-view-id>/pages/Page4Post.jsp</to-view-id>
</navigation-case>
<navigation-case>
    <from-action>#{testbean.submit}</from-action>
    <from-outcome>Page3</from-outcome>
    <to-view-id>/pages/Page3Post.jsp</to-view-id>
</navigation-case>
<navigation-case>
    <from-action>#{testbean.submit}</from-action>
    <from-outcome>Page1</from-outcome>
    <to-view-id>/pages/page1Post.jsp</to-view-id>
</navigation-case>
<navigation-case>
    <from-action>#{testbean.submit}</from-action>
    <from-outcome>Page2</from-outcome>
    <to-view-id>/pages/Page2Post.jsp</to-view-id>
</navigation-case>

我们正在使用我们自己的过滤器将数据保存到我们的地图中。

在特定的 Bean 中 test.jsp 将表单提交到某个 JSF 页面并且该 JSF 页面正在关闭会话。

这很可能是由于页面共享来自共享(=更长)范围的信息造成的。您的 bean 不会导致此问题,因为它是请求范围的,但在您共享会话的 bean 中。

private void initilize() {
   Map<String, Object> session = 
      FacesContext.getCurrentInstance().getExternalContext().getSessionMap();
   controller = getDataFromSession(session);
}

将其更改为在功能和技术上都可行的东西将解决您的问题。

另外

We are using our own filter to save the data into Our Map.

也可能会导致问题...因此您可能需要修复更多问题。但是对于您发布的代码,这是 the answer