¿Para qué pueden usarse , y ?

¿Alguien puede aclarar cómo podemos usar en general, o en un ejemplo del mundo real, este fragmento?

    

    Parámetros de GET de proceso

    El gestiona la configuración, la conversión y la validación de los parámetros GET. Es como , pero luego para los parámetros GET.

    El siguiente ejemplo

        

    hace básicamente lo siguiente:

    • Obtenga el valor del parámetro de solicitud por nombre id .
    • Convierta y valide si es necesario (puede usar atributos required , validator y converter y anidar un y en él como con )
    • Si la conversión y la validación son #{bean.id} , #{bean.id} como una propiedad de bean representada por #{bean.id} valor #{bean.id} , o si el atributo de value está ausente, configúrelo como solicitud attribtue en el id nombre para que esté disponible por #{id} en la vista.

    Entonces, cuando abre la página como foo.xhtml?id=10 , el valor del parámetro 10 se establece en el bean de esta manera, justo antes de que se visualice la vista.

    En cuanto a la validación, el siguiente ejemplo establece el parámetro para required="true" y solo permite valores entre 10 y 20. Cualquier falla de validación dará como resultado la visualización de un mensaje.

           

    Realizar una acción comercial en los parámetros GET

    Puede usar para esto.

            

    con

     public void onload() { // ... } 

    El es sin embargo nuevo desde JSF 2.2 (el ya existe desde JSF 2.0). Si no puede actualizar, entonces su mejor opción es usar lugar.

      

    Sin embargo, esto se invoca en cada solicitud. Debe verificar explícitamente si la solicitud no es una devolución de datos:

     public void onload() { if (!FacesContext.getCurrentInstance().isPostback()) { // ... } } 

    Cuando también desee omitir los casos de “Conversión / Validación fallida”, haga lo siguiente:

     public void onload() { FacesContext facesContext = FacesContext.getCurrentInstance(); if (!facesContext.isPostback() && !facesContext.isValidationFailed()) { // ... } } 

    Usar esta manera es, en esencia, una solución / pirateo, es exactamente por eso que se introdujo en JSF 2.2.


    Pase los parámetros de vista a la vista siguiente

    Puede “pasar” los parámetros de vista en los enlaces de navegación configurando el atributo includeViewParams en true o agregando includeViewParams=true parámetro de solicitud.

        

    que genera con el anterior ejemplo básicamente el siguiente enlace

      

    con el valor del parámetro original.

    Este enfoque solo requiere que next.xhtml tenga también un en el mismo parámetro, de lo contrario no se pasará.


    Utilice los formularios GET en JSF

    El también se puede usar en combinación con formularios GET “plain HTML”.

         ... 
    ... ...

    Con básicamente este @RequestScoped bean:

     private String query; private List results; public void search() { results = service.search(query); } 

    Tenga en cuenta que es para , no el HTML simple ! También tenga en cuenta que el valor de entrada muestra #{param.query} cuando #{bean.query} está vacío, porque de lo contrario el valor enviado no se mostraría en absoluto cuando hubiera un error de validación o conversión. Tenga en cuenta que este constructo no es válido para los componentes de entrada JSF (ya lo está haciendo “debajo de las cubiertas”).


    Ver también:

    • ViewParam vs @ManagedProperty (value = “# {param.id}”)
    • Comunicación en JSF 2.0 – Procesamiento de los parámetros de solicitud GET