Pregunta

Estoy usando Eclipse 3.6.2 (Helios), Tomcat 7, Myfaces 1.2.9

No tengo ningún problema cuando uso F: Param en H: CommandLink pero cuando pongo f: Param en H: CommandButton no funciona. Cuál es el problema ?

Esta muestra funciona bien:

<h:commandLink value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandLink>

Pero no lo hace

<h:commandButton value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandButton>
¿Fue útil?

Solución

En JSF 1.x, el <f:param> solo es compatible en <h:commandLink>, <h:outputLink> y <h:outputFormat>, no en <h:commandButton>. Ese soporte es solo en JSF 2.0 y más nuevo.

Tienes al menos 4 opciones:

  1. Usar <h:commandLink> en cambio. Si es necesario, use CSS para diseñarlo para que se vea como un botón. Ver para un ejemplo también JSF Command Button URL Parámetros.

  2. Usar <f:attribute> o <f:setPropertyActionListener> en cambio. Ver también Comunicación en JSF.

  3. Pasarlos como argumentos de método action="#{myBean.action('param1', 'param2')}". Tomcat 7 es un contenedor Servlet 3.0 que admite EL 2.2 que a su vez admite argumentos de método de aprobación. Solo necesitas asegurarte de que tu web.xml se declara conforma servlet 3.0. Ver también Invocar métodos con parámetros de EL en JSF 1.2.

  4. Actualice a JSF 2.0. Ofrece tantas ventajas sobre JSF 1.x. Ver también Migrar de JSF 1.2 a JSF 2.0 y Comunicación en JSF 2.0.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top