<h:selectonemenu>的JSF组件状态没有更改页面刷新</h:selectonemenu>

时间:2011-12-30 08:43:40

标签: jsf-2 facelets

我想为每个页面刷新初始化我的JSF Component Dropdown框。我已经知道JSF维护以前的状态,但有没有办法可以在每次刷新页面时重新初始化<h:selectOneMenu>组件。我的Backing bean是SessionScoped,我无法更改它,因为我使用<f:ajax>标记在此下拉框的每个onChange事件上触发支持bean方法。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

我认为article可以解决您的问题。在渲染视图之前,您只需要将绑定到<h:selectOneMenu>的属性重置为。{/ p>

答案 1 :(得分:0)

  

因为我使用<f:ajax>标记在此下拉框的每个onChange事件上触发支持bean方法

正是出于这个原因,发明了视野范围。将bean放在视图范围内。

@ManagedBean
@ViewScoped
public class Bean {
    // ...
}

每个浏览器窗口/选项卡都将获得自己的视图范围bean,每次刷新页面都会重新创建它。当您使用会话范围的bean时,当用户在同一会话中的不同浏览器窗口/选项卡中打开相同的页面时,它还会立即修复由不直观的页面行为引起的潜在主要问题。

另见: