h:selectOneMenu - 在点击commandAction时,JSP中的值会丢失?

时间:2013-06-23 15:01:55

标签: jsf jsf-1.2

我正在使用<h:selectOneMenu>向支持bean发送状态值。当我单击<h:commandLink>时,正确地在bean中拾取了值(在log.debug消息中)。但是,当页面重新加载时,选定的状态将丢失,顶部的那个(NY)将出现在UI中。不应该保留所选择的值吗?任何建议都非常赞赏。

我正在使用JSF 1.2。

JSP:

<h:selectOneMenu id="state" value="#{stateBean.stateName}"> 
    <f:selectItem itemValue="NY" itemLabel="New York" />
    <f:selectItem itemValue="CA" itemLabel="California" />
    <f:selectItem itemValue="NE" itemLabel="Nebraska" />
    <f:selectItem itemValue="AK" itemLabel="Alaska" />
</h:selectOneMenu>

<h:commandLink action="#{stateBean.sendStateAction}">

Managed Bean:

private String stateName;

log.debug("state name: " + stateName);

public String getStateName() {
    return stateName;
}
public void setStateName(String name) {
    this.stateName = name;
}

1 个答案:

答案 0 :(得分:1)

可能您的托管bean配置为请求范围。如果将其更改为session范围,则在用户会话仍处于活动状态时,该bean将可用。由于JSF 1.2没有view范围,您可以尝试将数据保存在会话中并在bean的构造函数中恢复它,或者使用处理此问题的第三方库。更多信息:JSF 1.2: How to keep request scoped managed bean alive across postbacks on same view?我使用过RichFaces @KeepAlive并为我的工作工作。