首先,对不起我的英语。 所以,我正在使用jsf,使用primefaces,并面临下一个问题: 我有一个内部有数据表的对话框,数据表行由行选择复选框和selectOneMenu元素组成,第一个selectOneMenu使用转换器显示来自DB的数据。
页:
<h:form>
<p:dialog>
<p:panelGrid>
<p:dataTable var="var", value="#{bean.enities}" rowKey=".." selection="#{bean.selection}">
<p:ajax event="rowSelectCheckbox"/>
<p:ajax event="rowUnselectCheckbox"/>
<p:ajax event="toggleSelect"/>
<p:column style="text-align:center; width:20px;" selectionMode="multiple"/>
<p:column>
<p:selectOneMenu value="#{var.valueWithConverter}" converter="value1Converter" >
<f:selectItem itemLabel="NULL" itemValue="#{null}"/>
<f:selectItems value="..." var="..." itemValue="..." itemLabel="...}"/>
</p:selectOneMenu>
</p:column>
<p:column >
<p:selectOneMenu value="#{valueWithoutConverter}">
<f:selectItems value="#{...}"/>
</p:selectOneMenu>
</p:column>
</p:dataTable>
</p:panelGrid>
</p:dialog>
</h:form>
问题是,当我在行选择复选框列中选择一些行时,对于每个选定的行,在转换器类中调用getEntityById方法,其中(方法)从DB调用select操作。我正在使用转换器,它从javax.faces.covert.Converter扩展而来。 任何想法,我该怎么做才能停止调用getEntityById方法?