2010-03-16 94 views
9

No he logrado encontrar la manera de pasar los parámetros a las páginas JSF a través de parámetros de URL.¿Cómo pasar parámetros de URL a JSF?

http://www.example.com/jsfApp.jsp?param1=value1&param2=value2 

¿Alguien podría indicarme la dirección correcta con esto?

Respuesta

21

Como está utilizando JSP, supongo que está utilizando JSF 1.x.

Para crear un vínculo con los parámetros de consulta, utilice h:outputLink con f:param:

<h:outputLink value="page.jsf"> 
    <f:param name="param1" value="value1" /> 
    <f:param name="param2" value="value2" /> 
</h:outputLink> 

El value se puede ajustar de forma dinámica con la ayuda de EL.

para ponerlos en el bean gestionado automágicamente, es necesario definir cada uno como managed-property en faces-config.xml:

<managed-bean> 
    <managed-bean-name>bean</managed-bean-name> 
    <managed-bean-class>com.example.Bean</managed-bean-class> 
    <managed-bean-scope>request</managed-bean-scope> 
    <managed-property> 
     <property-name>param1</property-name> 
     <value>#{param.param1}</value> 
    </managed-property> 
    <managed-property> 
     <property-name>param2</property-name> 
     <value>#{param.param2}</value> 
    </managed-property> 
</managed-bean> 

El imlicit EL variables #{param} se refiere al mapa de solicitud de parámetros como lo conocen desde la API de Servlet. Por supuesto, el bean ya debe tener las propiedades param1 y param2 con los getters/setters apropiados definidos.

Si desea ejecutar alguna lógica directamente después de que se ha establecido, hacer uso de la @PostConstruct anotación:

@PostConstruct 
public void init() { 
    doSomethingWith(param1, param2); 
} 

Para más consejos acerca de los parámetros que pasan y ese tipo de cosas alrededor de JSF, se puede encontrar útil.

El enfoque JSF 2.x usaría @ManagedProperty en la clase de bean de respaldo o <f:viewParam> en la vista de destino. Ver también esta pregunta: ViewParam vs @ManagedProperty(value = "#{param.id}")

+0

¡Genial! ¡¡Gracias!! – Ben

+0

De nada. – BalusC

Cuestiones relacionadas