¿Cómo puedo proceso de OBTENER la cadena de consulta de los parámetros de la URL en el respaldo de frijol en la carga de la página?

He leído cómo enviar los parámetros de uso de JSF, pero lo que si el usuario escribe su companyId en la dirección URL cuando se accede 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 petición y, a continuación, en el período de sesiones. Que los cambios en los parámetros de su mirada y de la sensación a partir de la página de inicio de sesión hacia adelante de modo que cada cliente puede tener un diferente página de inicio de sesión de la vista. Estamos utilizando extjs hasta que me cambie de JSF.

Hay una manera de hacer que el uso de JSF 2 o tal vez PrimeFaces?

OriginalEl autor Big Al | 2012-05-23

3 Kommentare

  1. 46

    Sí, usted puede utilizar el <f:viewParam> para establecer un parámetro de la petición como un bean gestionado propiedad.

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

    Puede, si es necesario invocar un bean de acción utilizando <f:viewAction> (JSF 2.2+) o <f:event type="preRenderView">.

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

    Cuando se utiliza <f:viewAction> incluso puede devolver un resultado de navegación.

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

    Cuando no en JSF 2.2 sin embargo, puede utilizar ExternalContext#redirect() para que. Ver también, entre otros Cómo realizar la exploración en preRenderView método detector.

    Tenga en cuenta que esto no es específico de PrimeFaces. Es solo parte del estándar de JSF. PrimeFaces es meramente una biblioteca de componentes que proporciona una mejor ajax y skinnability apoyo.

    Véase también:

    Yo solía usar PostConstruct para este tipo de cosas (y base de datos de acceso). El problema me acabo de enterar es que en requestscoped frijoles, el método será recordado en el ajax req que no tienen nada que ver con dijo bean. Que no es el caso con viewAction. Para aquel que se pregunta por qué : stackoverflow.com/questions/24490152/…

    OriginalEl autor BalusC

  2. 22

    url parámetros también pueden ser tratados como parámetros de petición de modo que también se puede acceder a través de

    FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
    se parámetros de solicitud. De la manera como usted propone, sin embargo permite menos de grano fino de conversión/validación que puede resultar en mucho innecesaria de código repetitivo en backing bean. Véase también el «Véase también» enlaces en respuesta.

    OriginalEl autor user1415890

  3. 4

    Hay una biblioteca de utilidad, OmniFaces que no esta fuera de la caja.

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

    OriginalEl autor Toumi

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea