页面加载时JSF数据表刷新

页面加载时JSF数据表刷新,jsf,Jsf,我在JSF中有一个数据表,当用户选择一个下拉菜单时,它会被填充。表中显示的列表来自一个支持bean。此支持bean位于会话作用域中。因此,当用户单击网页的其他链接并返回此页面时,它仍然会显示数据列表中的数据以及以前的选择 问题是-如何确保当用户离开页面时数据被重置,以便当用户返回时,他们可以看到一个没有数据的新页面 我不能将支持bean放在请求范围内,因为这样就不可能有购物车类型的应用程序。将数据模型保留在会话范围内的bean中,添加一个请求范围的bean,它从会话范围的bean复制引用,让表单

我在JSF中有一个数据表,当用户选择一个下拉菜单时,它会被填充。表中显示的列表来自一个支持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;
        // ...
    }
}