我在ui中使用JSF commandlink时出现问题:使用子表/数据表重复。
我已经尝试使用带有@PostConstruct方法的视图结构bean加载所有数据但仍然无法正常工作。
我在commandButton/commandLink/ajax action/listener method not invoked or input value not updated中阅读了@BalusC的解释,但仍无效。
我的xhtml:
<p:column style="text-align:left;">
<p:imageSwitch effect="fade" id="fadeEffect">
<ui:repeat value="#{item.evidenciaRespostaAsList}" var="image" id="fadeEffectImages">
<!-- this commandlink is working as expected -->
<p:commandLink update=":form:dlgImage :form:messages :form:msgs" action="#{relatorioAuditoriaViewScopedMBean.setSelectedItem(item)}" oncomplete="PF('dlg').show()">
<p:graphicImage value="#{fotoMBean.foto}" width="150" height="100" >
<f:param name="fotoNome" value="#{image.descricao}" />
<f:param name="fotoType" value="#{image.filetype}" />
</p:graphicImage>
</p:commandLink>
</ui:repeat>
</p:imageSwitch>
</p:column>
<f:facet name="footer">
<p>Evidências Obrigatórias: #{resposta.produto.descricao} #{resposta.linha.descricao} (#{resposta.evidenciaObrigatoriaList.size()}) </p>
<p:column>
<div id="main" class="flex-centralizado">
<ui:repeat value="#{resposta.evidenciaObrigatoriaList}" var="imagemEvidenciaObrigatoria" id="fadeEffectImagesEvidenciaObrigatoria">
<div class="figura">
<p>#{imagemEvidenciaObrigatoria.tipoEvidencia.descricao}</p>
<p> <p:commandLink
rendered="true"
update=":form:dlgImageObrigatoria :form:messages :form:msgs"
action="#{relatorioAuditoriaViewScopedMBean.setSelectedEvidenciaObrigatoria(imagemEvidenciaObrigatoria)}"
actionListener="#{relatorioAuditoriaViewScopedMBean.atualizarFotoEvidenciaObrigatoria}"
oncomplete="PF('dlgE').show()">
<f:param name="idevidenciaObrigatoria" value="#{imagemEvidenciaObrigatoria.idevidenciaAuditoria}"/>
<p:graphicImage rendered="true" value="#{fotoMBean.foto}" width="150" height="100" >
<f:param name="fotoNome" value="#{imagemEvidenciaObrigatoria.descricao}" />
<f:param name="fotoType" value="#{imagemEvidenciaObrigatoria.filetype}" />
</p:graphicImage>
</p:commandLink>
</p>
</div>
</ui:repeat>
</div>
</p:column>
</f:facet>
我的bean是ViewScoped,所有的getter和setter都是默认的。我唯一的问题是facet中的第二个commandlink:footer不会调用action或actionlistener或更新。名为oncomplete的对话框正在加载而没有数据。
@Action Method
public void setSelectedEvidenciaObrigatoria(EvidenciaAuditoria selectedEvidenciaObrigatoria) {
this.selectedEvidenciaObrigatoria = selectedEvidenciaObrigatoria;
}
@ActionListener方法
public void atualizarFotoEvidenciaObrigatoria(javax.faces.event.ActionEvent event) {
LOGGER.info("atualizarFotoEvidenciaObrigatoria() called!");
String idevidenciaObrigatoria = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idevidenciaObrigatoria");
int id = Integer.parseInt(idevidenciaObrigatoria);
LOGGER.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> idevidenciaObrigatoria="+id+" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
}
更多详情:
任何sugestions?
Ty求助!