如何停止JSF1.2停止重新加载同一页面
How to stop JSF1.2 to stop reloading same page
我正在使用 JSF1.2
。
我们将打开两个选项卡 1 和选项卡 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
我正在使用 JSF1.2
。
我们将打开两个选项卡 1 和选项卡 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