Domanda

sto usando Eclipse 3.6.2 (Helios), Tomcat 7, MyFaces 1.2.9

Non ho alcun problema quando uso f: param nella h: commandLink ma quando ho messo f: param in h: commandButton non funziona. qual è il problema?

questo bel lavoro di esempio:

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

ma non

<h:commandButton value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandButton>
È stato utile?

Soluzione

In JSF 1.x, il <f:param> è supportato solo in <h:commandLink>, <h:outputLink> e <h:outputFormat>, non in <h:commandButton>. Questo supporto è solo in JSF 2.0 e successivi.

Hai almeno 4 opzioni:

  1. Usa <h:commandLink> invece. Se necessario utilizzare i CSS per lo stile a guardare come un pulsante. Si veda ad esempio anche JSF commandButton URL parametri .

  2. Usa <f:attribute> o <f:setPropertyActionListener> invece. Vedi anche Comunicazione in JSF .

  3. passarli come metodo argomenti action="#{myBean.action('param1', 'param2')}". Tomcat 7 è un contenitore di servlet 3.0 che supporta EL 2.2 che a sua volta supporta passare gli argomenti di metodo. Hai solo bisogno di assicurarsi che il web.xml è dichiarato conforme Servlet 3.0. Vedi anche con parametri per EL in JSF 1.2 .

  4. Aggiornamento a JSF 2.0. Si offre così tanto vantaggi rispetto JSF 1.x. Vedi anche Migrazione da JSF 1.2 a JSF 2.0 Comunicazione in JSF 2.0 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top