页面加载时JSF数据表刷新
我在JSF中有一个数据表,当用户选择一个下拉菜单时,它会被填充。表中显示的列表来自一个支持bean。此支持bean位于会话作用域中。因此,当用户单击网页的其他链接并返回此页面时,它仍然会显示数据列表中的数据以及以前的选择 问题是-如何确保当用户离开页面时数据被重置,以便当用户返回时,他们可以看到一个没有数据的新页面页面加载时JSF数据表刷新,jsf,Jsf,我在JSF中有一个数据表,当用户选择一个下拉菜单时,它会被填充。表中显示的列表来自一个支持bean。此支持bean位于会话作用域中。因此,当用户单击网页的其他链接并返回此页面时,它仍然会显示数据列表中的数据以及以前的选择 问题是-如何确保当用户离开页面时数据被重置,以便当用户返回时,他们可以看到一个没有数据的新页面 我不能将支持bean放在请求范围内,因为这样就不可能有购物车类型的应用程序。将数据模型保留在会话范围内的bean中,添加一个请求范围的bean,它从会话范围的bean复制引用,让表单
我不能将支持bean放在请求范围内,因为这样就不可能有购物车类型的应用程序。将数据模型保留在会话范围内的bean中,添加一个请求范围的bean,它从会话范围的bean复制引用,让表单提交到该请求范围的bean,并让视图使用请求范围的bean。您可以在每个托管属性注入下从请求范围bean内部访问会话范围bean。例如
<managed-bean>
<managed-bean-name>cart</managed-bean-name>
<managed-bean-class>com.example.Cart</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>showCart</managed-bean-name>
<managed-bean-class>com.example.ShowCart</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>cart</property-name>
<value>#{cart}</value>
</managed-property>
</managed-bean>
视图使用
{showCart.show}
。感谢BalusC提供的解决方案。我将使用它,我希望它在JSF1.1中也可用。
public class ShowCart {
private Cart cart;
private Cart show;
// +getters+setters
public String submit() {
show = cart;
// ...
}
}