tho*_*.st 6 java ajax jsf selectonemenu managed-bean
我想在选择第一个SelectOnMenu的任何项目时更新第二个SelectOneMenu.就像现在一样,我从ManagedBean获取SelectOneMenus的值.我想我将使用AJAX(jquery)将参数发送到ManagedBean.
<h:form>
<div class="center">
<h:panelGrid id="editTable" columns="2" styleClass="center">
...
<h:outputText value="#{msg.timetable_list_category}" />
<h:selectOneMenu class="category">
<f:selectItems value="#{categoryBackingBean.categorys}" var="c"
itemLabel="#{c.category_Name}" itemValue="#{c.id}" />
</h:selectOneMenu>
<h:outputText value="#{msg.timetable_list_seminarblock}" />
<h:selectOneMenu class="seminarblock">
<f:selectItems value="#{seminarblockBackingBean.seminarblocks}" var="s"
itemLabel="#{s.seminarblock_Name}" itemValue="#{s.seminarblock_Id}" />
</h:selectOneMenu>
...
</h:panelGrid>
...
</div>
</h:form>
Run Code Online (Sandbox Code Playgroud)
实际上,您可以使用在selectOneMenu的值更改时调用的ValueChangeListener:
<h:selectOneMenu class="category" valueChangeListener="#{yourBean.selectOneMenuListener}">
<f:selectItems value="#{categoryBackingBean.categorys}" var="c"
itemLabel="#{c.category_Name}" itemValue="#{c.id}" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
然后,在你的bean中你有这个方法:
public void selectOneMenuListener(ValueChangeEvent event) {
//This will return you the newly selected
//value as an object. You'll have to cast it.
Object newValue = event.getNewValue();
//The rest of your processing logic goes here...
}
Run Code Online (Sandbox Code Playgroud)
要更新页面,您可以添加onchange="submit()"到您的页面<h:selectOneMenu/>.对于某些部分渲染,您可以尝试添加此<f:ajax/>代替onchange="submit()":
<h:selectOneMenu class="category" valueChangeListener="#{yourBean.selectOneMenuListener}">
<f:selectItems value="#{categoryBackingBean.categorys}" var="c"
itemLabel="#{c.category_Name}" itemValue="#{c.id}" />
<f:ajax event="change" execute="@form" render="theIdOfTheComponentYouWantToReRender"/>
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
如果我没弄错的话,你会想要获得第一个菜单中所选元素的id,并根据它填充第二个元素.然后,您可以渲染另一个selectOneMenu,或者,如果需要,还可以渲染包含表单一部分的面板.
| 归档时间: |
|
| 查看次数: |
17814 次 |
| 最近记录: |