将数据模型保留在会话作用域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
看起来像:
public class ShowCart {
private Cart cart;
private Cart show;
// +getters+setters
public String submit() {
show = cart;
// ...
}
}
视图使用
#{showCart.show}
相反。