用JSF的valueChangeListener实现表单联动

用JSF的valueChangeListener也是可以实现表单联动的,当下拉框中选择一个值后,会往后台backbean中传入刚才所选中的ID,这个ID可以做为另外一个下拉框内容的查询条件,具体如下:

JSP页面

下拉框1:

<h:panelGroup>
<h:selectOneMenu id="planID" value="#{testBB.planID}" οnchange="submit();" valueChangeListener="#{testBB.changeStatus}">
            <c:selectItems value="#{testBB.queryList}"></c:selectItems>
        </h:selectOneMenu>
    </h:panelGroup>

下拉框1中的内容在页面进行初始化的时候对数据库进行查询,将查询到的结果封装到list中,在页面上用selectOneMenu一关联就出来了。主要是看它是怎么和另一个下拉框关联起来的,当下拉框1选中内容时,会触发onchange事件,此时会调用valueChangeListener中指定的方法,同时会将选中值的ID传入后台,代码如下:

public void changeStatus(ValueChangeEvent event){
        ......
        planID = event.getNewValue().toString();//得到页面传过来的planID
       	......
		resultList = testucc.getPersons(planID);//调用查询数据库的语句
    }

这样根据第一个下拉框传过来的planID查询出来的结果就封装到了list中,getPersons方法是对查询结果进行具体封装的

 

下拉框2:

<h:panelGroup>
    	<h:selectOneMenu id="itemID" value="#{testBB.itemID}">
            <c:selectItems value="#{testBB.resultList}"></c:selectItems>
        </h:selectOneMenu>
    </h:panelGroup>

 通过与resultList进行关联下拉框2中的值就出来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值