En mi página JSF tengo un cuadro combinado que actualiza una tabla cuando se selecciona un elemento del cuadro combinado.JSF Actualizaciones de Ajax hace que commandLink falle en el primer clic
La tabla contiene elementos con un enlace de edición.
El problema es cuando la tabla se cambia por el cuadro combinado que necesita hacer clic dos veces en el enlace para ir a la página. El primer clic simplemente actualiza la página.
Aquí es el XHTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<ui:composition template="/template.xhtml">
<ui:define name="windowTitle">Comment packages</ui:define>
<ui:define name="content">
<h3>Select the package to comment.</h3>
<h:form prependId="false">
Section:
<h:selectOneMenu id="selectSection" value="#{platformService.currentSection}">
<f:ajax render=":list-packages" />
<f:selectItems value="#{platformService.releasePlatform.sections}" />
</h:selectOneMenu>
</h:form>
<p/>
<h:panelGroup id="list-packages">
<h:dataTable id="packageList" var="package" value="#{packageService.packages}" border="1" >
<h:column>
<f:facet name="header">Package name</f:facet>
#{package.name}
</h:column>
<h:column>
<h:form>
<h:commandlink action="#{commentService.commentPackage}" value="Comment">
<f:param name="packageName" value="#{package.name}" />
</h:commandLink>
</h:form>
</h:column>
</h:dataTable>
</h:panelGroup>
</ui:define>
</ui:composition>
</body>
</html>
También he probado con commandButton pero también hay que hacer doble clic en el botón.
Estoy ejecutando JSF 2.0.1-FCS en Maven/Jetty.
¿Por qué hay ": list-packages" no "list-packages" en f: atributo de renderizado ajax? ¿Tal vez éste es el problema? ¿Tal vez la mesa no se entrega? – amorfis
el ':' se debe a que el componente para representar está fuera del formulario. http://ocpsoft.com/java/jsf2-java/how-to-jsf-2-0-render-components-outside-of-the-form/ La tabla se actualiza/representa correctamente pero los enlaces en el la tabla debe hacerse clic dos veces para ir a la página. – Anthony