viewparam pass parameter pages from bean jsf jsf-2 query-string managed-bean http-request-parameters

pass - jsf get parameter in managed bean



¿Cómo se procesan los parámetros de la URL de la cadena de consulta GET en el bean de respaldo en la carga de la página? (3)

Hay una biblioteca de utilidades, OmniFaces que hace esto de la caja.

@Inject @Param private String key; @Inject @Param private Long id;

He leído cómo enviar parámetros usando JSF, pero ¿qué ocurre si el usuario companyId su companyId en la URL al acceder a su página de inicio de sesión? Por ejemplo,

http://my.company.url/productName/login.faces?companyId=acme .

La forma en que lo hacemos ahora, hay un poco de código scriptlet que toma el valor de la solicitud y luego lo establece en la sesión. Ese parámetro cambia su apariencia desde la página de inicio de sesión para que cada cliente pueda tener una vista de página de inicio de sesión diferente. Estamos usando extjs hasta que cambie a JSF.

¿Hay alguna manera de hacerlo usando JSF 2 o quizás PrimeFaces?


Los parámetros de URL también se pueden tratar como parámetros de solicitud, de modo que también se puede acceder a través de

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()


Sí, puede usar <f:viewParam> para establecer un parámetro de solicitud como una propiedad de bean administrada.

<f:metadata> <f:viewParam name="companyId" value="#{bean.companyId}" /> </f:metadata>

Si es necesario, puede invocar una acción de bean usando <f:viewAction> (solo JSF 2.2+) o <f:event type="preRenderView"> .

<f:metadata> <f:viewParam name="companyId" value="#{bean.companyId}" /> <f:viewAction action="#{bean.onload}" /> </f:metadata>

Al usar <f:viewAction> puede incluso devolver un resultado de navegación.

public String onload() { // ... return "somepage"; }

Cuando todavía no está en JSF 2.2, puede usar ExternalContext#redirect() para eso. Consulte también, entre otros, Cómo realizar navegación en el método de escucha preRenderView .

Tenga en cuenta que esto no es específico de PrimeFaces. Es solo parte de JSF estándar. PrimeFaces es simplemente una biblioteca de componentes que proporciona compatibilidad mejorada con ajax y skinnability.

Ver también: