这是我的第一个问题:)
我的代码如下:
<?xml version="1.0"?>
<f:view xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
>
<h:head />
<h:body>
<h:form id="filterForm">
<h:outputStylesheet library="css" name="main.css" />
<div id="filterPane">
<h:panelGroup rendered="#{not empty filters.categories}">
<div class="filter">
<div class="filterCategories" style="width: 100%;">
<h4>Kategorien</h4>
<p />
<h:selectManyCheckbox layout="pageDirection"
value="#{filters.selectedCategories}"
valueChangeListener="#{filters.categoryValueChanged}">
<f:selectItems value="#{filters.categories}" var="category"
itemLabel="#{category.displayName} (#{category.count})"
itemValue="#{category.name}" />
<f:ajax render="@form" />
</h:selectManyCheckbox>
</div>
</div>
</h:panelGroup>
</div>
</h:form>
</h:body>
</f:view>
我遇到的问题与我之前的其他人一样@stackoverflow - 但是没有一个建议的解决方案对我有用。
<f:ajax> contains an unknown id 'A5539:filterForm:j_idt9' - cannot locate it in the context of the component j_idt9
在我从<p:selectManyCheckbox
切换到<h:selectManyCheckbox
之前,代码工作正常。
我们需要更改为<h:selectedManyCheckbox
,因为PrimeFaces变体不能为非JavaScript用户选择。我需要通过<h:form id="filterForm">
元素重新呈现<f:ajax>
形式作为我的AJaX请求的结果。
在初始<f:ajax render="@form" />
旁边,我尝试使用以下变体引用<h:form id="filterForm">
元素失败:
<f:ajax render=":filterForm" />
<f:ajax render=":#{component.parent.parent}" />
我也尝试了一些更愚蠢的。
任何提示,任何人!? :)