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}")
¡Genial! ¡¡Gracias!! – Ben
De nada. – BalusC