在jsf中验证错误后恢复表单数据

时间:2010-12-27 00:37:19

标签: jsf

我有一个组合框(下拉列表)和页面上的文本字段。它们都需要设置为true。当我在下拉列表中选择一个值并提交表单时,验证将启动并且由于文本字段值为null,我将重定向到同一页面。哪个好,但我放松了下拉列表中选择的数据。如果出现验证错误,如何保留表单数据?我正在使用带有jsf1.2的facelets。

1 个答案:

答案 0 :(得分:1)

HI,

它在JSF 2.0中运行良好。我刚尝试过。我写了以下代码:

 <f:view>
        <h:form>
            <h:inputText id="name" value="#{jsfBean.name }" required="true"/>
            <h:selectOneMenu id="items" value="#{jsfBean.selectedItem }" required="true">
                <f:selectItems value="#{jsfBean.items }"/>
            </h:selectOneMenu>
            <h:commandButton id="submit" value="Submit" action="#{jsfBean.submit }" />
        </h:form>
    </f:view>

private String selectedItem;
private ArrayList<SelectItem> items = null;
public String getSelectedItem() {
    this.selectedItem = "--Select--";
    return selectedItem;
}
public void setSelectedItem(String selectedItem) {      
    this.selectedItem = selectedItem;
}
public ArrayList<SelectItem> getItems() {
    this.items = new ArrayList<SelectItem>();
    SelectItem selectItem = new SelectItem("1","1");
    SelectItem selectItem1 = new SelectItem("--Select--","--Select--");
    this.items.add(selectItem);
    this.items.add(selectItem1);
    return items;
}
public void setItems(ArrayList<SelectItem> items) {
    this.items = items;
}