【发布时间】:2010-12-27 00:37:18
【问题描述】:
我在页面上有一个组合框(下拉列表)和一个文本字段。他们都要求设置为true。当我在下拉列表中选择一个值并提交表单时,验证启动并且我被重定向到同一页面,因为文本字段值为空。这很好,但我丢失了下拉列表中选择的数据。出现验证错误时如何保留表单数据?我正在使用带有 jsf1.2 的 facelets。
【问题讨论】:
标签: jsf
我在页面上有一个组合框(下拉列表)和一个文本字段。他们都要求设置为true。当我在下拉列表中选择一个值并提交表单时,验证启动并且我被重定向到同一页面,因为文本字段值为空。这很好,但我丢失了下拉列表中选择的数据。出现验证错误时如何保留表单数据?我正在使用带有 jsf1.2 的 facelets。
【问题讨论】:
标签: jsf
嗨,
它在 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;
}
【讨论】: