我想为每个页面刷新初始化我的JSF Component Dropdown框。我已经知道JSF维护以前的状态,但有没有办法可以在每次刷新页面时重新初始化<h:selectOneMenu>
组件。我的Backing bean是SessionScoped,我无法更改它,因为我使用<f:ajax>
标记在此下拉框的每个onChange事件上触发支持bean方法。请帮我解决这个问题。
答案 0 :(得分:1)
我认为article可以解决您的问题。在渲染视图之前,您只需要将绑定到<h:selectOneMenu>
的属性重置为。{/ p>
答案 1 :(得分:0)
因为我使用
<f:ajax>
标记在此下拉框的每个onChange事件上触发支持bean方法
正是出于这个原因,发明了视野范围。将bean放在视图范围内。
@ManagedBean
@ViewScoped
public class Bean {
// ...
}
每个浏览器窗口/选项卡都将获得自己的视图范围bean,每次刷新页面都会重新创建它。当您使用会话范围的bean时,当用户在同一会话中的不同浏览器窗口/选项卡中打开相同的页面时,它还会立即修复由不直观的页面行为引起的潜在主要问题。