jsf

本文探讨了JSF框架中表单元素的命名问题及解决方法,并介绍了如何使用选择框组件显示动态内容,包括使用List和Map对象作为选项源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.本人在写js代码时不知道为什么 只能写成下面这种情况
<h:inputText value="#{user.name}" id="name"
      valueChangeListener
="#{user.s}" binding="#{user.ui}"  onmouseout="document.forms.form['form:name'].value='nihao'">
</h:inputText>

而写成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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值