【问题标题】:restore form data after validation error in jsf在jsf中验证错误后恢复表单数据
【发布时间】:2010-12-27 00:37:18
【问题描述】:

我在页面上有一个组合框(下拉列表)和一个文本字段。他们都要求设置为true。当我在下拉列表中选择一个值并提交表单时,验证启动并且我被重定向到同一页面,因为文本字段值为空。这很好,但我丢失了下拉列表中选择的数据。出现验证错误时如何保留表单数据?我正在使用带有 jsf1.2 的 facelets。

【问题讨论】:

    标签: jsf


    【解决方案1】:

    嗨,

    它在 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;
    }
    

    【讨论】:

    • 它也在 JSF 1.2 中工作。一旦我在文章中读到 SelectMenu 中存在一些错误以保留该值。能不能更新到最新的1.2.X版本试试看。
    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 2013-10-02
    • 2015-01-06
    • 2011-10-10
    • 2014-04-11
    • 2014-05-07
    • 2013-11-19
    • 2013-01-24
    相关资源
    最近更新 更多