<h:inputText value="#{user.name}" id="name"
valueChangeListener="#{user.s}" binding="#{user.ui}" onmouseout="document.forms.form['form:name'].value='nihao'">而写成onmouseout="document.forms[0].name.value='nihao'"或onmouseout="document.forms.form.elements['name'].value='nihao'"则不行。郁闷中。。。。。。。。。等待高人指点
本人认为是jsf在命名元素时自动将名字加上了form名。即id为name那么 在jsf标签中则为formName:name(form名为formName)
所以改成onmouseout="document.forms.form.elements['form:name'].value='nihao' 则是可以的。
2、
<h:selectManyCheckbox layout="pageDirection"
value="#{user.preferColors}">
<f:selectItems value="#{requestScope.items}"/>
</h:selectManyCheckbox><p>
items 、<1>可以提供一个Map对象,Map的key-value会分别作为选项的label-value。<2>可以提供list或数组对象,例如List<SelectItem> 。否则需提供类型转唤器
<%
List<SelectItem> list = new ArrayList<SelectItem>();
list.add(new SelectItem("11"));
list.add(new SelectItem("61"));
Map map = new HashMap();
map.put("1", "map1");
map.put("2", "map2");
map.put("4", "map4");
map.put("3", "map3");
request.setAttribute("list", list);
request.setAttribute("map", map);
request.setAttribute("s", "ss");
%>
<p>
<h:selectManyCheckbox id="newsletters" layout="pageDirection">
<f:selectItem itemValue="1" itemLabel="item1" />
<f:selectItem itemValue="2" itemLabel="item2" />
<f:selectItem itemValue="3" itemLabel="#{requestScope.s}" />
<f:selectItems value="#{requestScope.list}" />
</h:selectManyCheckbox>
</p>
<h:selectOneMenu id="shippingOption" required="true"
value="#{cashier.shippingOption}">
<f:selectItem itemValue="1" itemLabel="item1" />
<f:selectItem itemValue="2" itemLabel="item2" />
<f:selectItem itemValue="3" itemLabel="#{requestScope.s}" />
<f:selectItems value="#{requestScope.map}" />
</h:selectOneMenu>
<p>
<h:selectManyListbox>
<f:selectItem itemValue="1" itemLabel="item1" />
<f:selectItem itemValue="2" itemLabel="item2" />
<f:selectItem itemValue="3" itemLabel="#{requestScope.s}" />
<f:selectItems value="#{requestScope.map}" />
</h:selectManyListbox>
</p>
本文探讨了JSF框架中表单元素的命名问题及解决方法,并介绍了如何使用选择框组件显示动态内容,包括使用List和Map对象作为选项源。
4733

被折叠的 条评论
为什么被折叠?



