0

我正在使用 a<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}">

托管豆:

private String stateName;

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

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

1 回答 1

1

可能您的托管 bean 被配置为请求范围。如果将其更改为session范围,则 bean 将在用户会话仍然存在时可用。由于 JSF 1.2 没有view范围,您可以尝试将数据保存在会话中并在 bean 的构造函数中恢复它,或者使用处理此问题的第三方库。更多信息:JSF 1.2:如何在同一视图上的回发中保持请求范围的托管 bean 活动?我使用过 RichFaces@KeepAlive并为我的工作工作。

于 2013-06-23T15:12:08.950 回答