从selectOneListbox存储Previous PreviousValue

时间:2012-03-08 13:05:31

标签: java jsf

我需要一个非常简单的解决方案来实现它。

我需要存储我在JSF selectOneListbox下拉列表中选择的值,并且需要在bean中保留此值。因此,每当用户选择一个新值时,我应该在下拉列表中使用新值检查一个值。使用会话这样做有多好? 任何java解决方案都保留以前选择的值?

我尝试过ValueChangeEvent oldValue不起作用,因为我的范围是请求,这就是我寻找替代方法的原因。

我的JSF版本是1.1

1 个答案:

答案 0 :(得分:2)

嗯,你可以试试这个:

<h:form>
    <h:inputHidden id="oldValue" value="#{mrBean.oldValue}" />

    <h:selectOneListBox id="newValue" value="#{mrBean.newValue}">
        ...
    <h:selectOneListBox>

    <h:commandButton actionListener="#{mrBean.doSomething}" value="Submit" />
</h:form>

然后你可以这样访问旧值:

@RequestScoped
@ManagedBean
public class MrBean {
    private String oldValue;
    private String newValue;

    public void doSeomthing() {
       if (oldValue != null) {
           // Do whatever you need when oldValue is not null here
       } else {
           // 1st request will have oldValue == null
       }

       oldValue = newValue; // Update the oldValue with newValue
    }

    // Getters and Setters
}