奇怪的jsf panelgroup binding - > h:selectOneMenu验证异常

时间:2012-12-01 13:54:50

标签: validation jsf

让我们开始简单: - 一个简单的搜索表单 - 两个h:selectOneMenu组件在表单中声明 - 第二个selectOneMenu,基于选择第一个selectOneMenu的项目(使用ajax)进行刷新 为此,我在请求范围中使用中央Bean,因为两个selectOneMenus在许多其他页面上声明,所以我不需要多次定义以下两个方法:

pageSupport:

@SuppressWarnings("unchecked")
public List<BranchenRubrik> getLst_branchenRubrik() {
    if(lst_branchenRubrik == null) {
        Session session = hibernate.InitSessionFactory.getInstance().getCurrentSession();
        Transaction tx = session.beginTransaction();
            this.lst_branchenRubrik = session.createQuery("from BranchenRubrik").list();
        tx.commit();
    }
    return lst_branchenRubrik;
}

// Loading Subkats with parameter
@SuppressWarnings("unchecked")
public List<BranchenRubrikSub> getBranchenRubrikSub(long p_parent) {

    List<BranchenRubrikSub> lst_branchenRubrikSub = new ArrayList<BranchenRubrikSub>();
    if(p_parent > 0) {          
        Session session = hibernate.InitSessionFactory.getInstance().getCurrentSession();
        Transaction tx = session.beginTransaction();
            lst_branchenRubrikSub = session.createQuery("from BranchenRubrikSub BRS WHERE BRS.parentRubrik.id = :p1").setLong("p1",p_parent).list();
        tx.commit();
    }
    return lst_branchenRubrikSub;
}

VDL:

<p:selectOneMenu value="#{searchBean2.fvz.branchenRubrikID}">
            <f:selectItem itemLabel="Bitte wählen" itemValue="0"/>
            <f:selectItems value="#{pageSupport.lst_branchenRubrik}" var="rubrik" itemValue="#{rubrik.id}" itemLabel="#{rubrik.rubrik}"/>
            <f:ajax render="uiBranchenSubKat"/> 


        </p:selectOneMenu>
        <h:outputText value="Unterkategorie" />
        <p:selectOneMenu id="uiBranchenSubKat" value="#{searchBean2.fvz.branchenRubrikSubID}">
        <f:selectItems value="#{pageSupport.getBranchenRubrikSub(searchBean2.fvz.branchenRubrikID)}" var="brs" itemLabel="#{brs.rubrik}" itemValue="#{brs.id}"/>
        </p:selectOneMenu>

这很好用,我可以提交表格,所有数据都会保存并重新显示。 现在,我想包含一个h:panelGroup,它绑定到一个方法,它构建了一个分页菜单。 如果我包含h:panelGroup binding =“#{searchBean2.paginationMenu}”/&gt;然后,我无法提交表单,因为它表示第二个h:selectOneMenu的值无效。

如果我删除“h:panelGroup binding”全部按预期工作。 h:panelgroup也可以绑定到空方法“return new HtmlPanelGroup()” 然后,错误再次发生。 看起来,组件绑定会打破一些验证。

感谢您的时间

0 个答案:

没有答案