带有地图值条目的 whtml 中的验证错误
Validation Error in whtml with map value entry
我想在 xhtml 页面(使用 jsf)中显示 HashMap 的元素:
<h:selectOneMenu id="elt" value="#{mgbean.elt}">
<c:forEach var="entry" items="#{mgbean.map}">
<f:selectItem itemValue="#{entry.key}" itemLabel="#{entry.value}" escape="false" />
</c:forEach>
</h:selectOneMenu>
地图如下:
map= new LinkedHashMap<String, String>();
map.put("1", ">=20");
map.put("2","<20");
我遇到了这个错误:
PM org.apache.myfaces.lifecycle.RenderResponseExecutor execute
WARNING: There are some unhandled FacesMessages, this means not every
FacesMessage had a chance to be rendered. These unhandled
FacesMessages are:
- selectionForm:elt: Validation Error: Value is not valid
我尝试添加以下行,但出现相同的错误
<?xml version="1.0" encoding="UTF-8"?>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
我该如何解决这个错误。
更新:
public String elt;
与 getter 和 setter.
public Map<String, String> map;
map= new LinkedHashMap<String, String>();
map.put("1", ">=20");
map.put("2", "<20");
我认为你应该选择 f:selectItem
,它会将键作为标签,将值作为..值:
<h:selectOneMenu id="elt" value="#{mgbean.elt}">
<f:selectItems value="#{mgbean.map}"/>
</h:selectOneMenu>
更新
如果您想手动定义标签是键还是值,请尝试:
<h:selectOneMenu id="elt" value="#{mgbean.elt}">
<f:selectItems value="#{mgbean.map.entrySet()}"
var="entry" itemValue="#{entry.value}" itemLabel="#{entry.key}"/>
</h:selectOneMenu>
另外 请记住,在任何给定时间点,mgbean.elt
字段中包含的值必须始终是地图的键之一。如果出于某种原因您将该值手动设置为不同于“1”或“2”的值,您可能会收到上述错误。
我想在 xhtml 页面(使用 jsf)中显示 HashMap 的元素:
<h:selectOneMenu id="elt" value="#{mgbean.elt}">
<c:forEach var="entry" items="#{mgbean.map}">
<f:selectItem itemValue="#{entry.key}" itemLabel="#{entry.value}" escape="false" />
</c:forEach>
</h:selectOneMenu>
地图如下:
map= new LinkedHashMap<String, String>();
map.put("1", ">=20");
map.put("2","<20");
我遇到了这个错误:
PM org.apache.myfaces.lifecycle.RenderResponseExecutor execute WARNING: There are some unhandled FacesMessages, this means not every FacesMessage had a chance to be rendered. These unhandled FacesMessages are: - selectionForm:elt: Validation Error: Value is not valid
我尝试添加以下行,但出现相同的错误
<?xml version="1.0" encoding="UTF-8"?>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
我该如何解决这个错误。
更新:
public String elt;
与 getter 和 setter.
public Map<String, String> map;
map= new LinkedHashMap<String, String>();
map.put("1", ">=20");
map.put("2", "<20");
我认为你应该选择 f:selectItem
,它会将键作为标签,将值作为..值:
<h:selectOneMenu id="elt" value="#{mgbean.elt}">
<f:selectItems value="#{mgbean.map}"/>
</h:selectOneMenu>
更新
如果您想手动定义标签是键还是值,请尝试:
<h:selectOneMenu id="elt" value="#{mgbean.elt}">
<f:selectItems value="#{mgbean.map.entrySet()}"
var="entry" itemValue="#{entry.value}" itemLabel="#{entry.key}"/>
</h:selectOneMenu>
另外 请记住,在任何给定时间点,mgbean.elt
字段中包含的值必须始终是地图的键之一。如果出于某种原因您将该值手动设置为不同于“1”或“2”的值,您可能会收到上述错误。