`
icyheart
  • 浏览: 766643 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用JSF的valueChangeListener实现表单联动

    博客分类:
  • JSF
阅读更多

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

JSP页面

下拉框1:

<h:panelGroup>
<h:selectOneMenu id="planID" value="#{testBB.planID}" onchange="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中的值就出来了

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics