Bookmarkability a través de la característica View Parameters

¿Es factible la bookmarkability usando el parámetro de consulta includeViewParams=true con navegación implícita JSF? Si es así, entonces cómo ?

Primero, debemos entender qué es exactamente “bookmarkability” y qué includeViewParams exactamente includeViewParams . De esta forma, se puede entender mejor el efecto de la combinación de ambos.

Bookmarkability se refiere a la URL de solicitud de HTTP en su forma exacta como se ve en la barra de direcciones del navegador. Es exactamente la URL que el usuario final almacenará en sus marcadores y / o copiará como un enlace en otro lugar, como un foro, un chat, algún medio social, o simplemente una nueva ventana / pestaña del navegador, etc. Cuando se sigue un enlace o una URL se copia en la barra de direcciones del navegador, y de manera predeterminada se activará una solicitud HTTP GET. Si el resultado es exactamente el mismo cada vez (dejando la autorización / autenticación y la naturaleza temporal de la página, resultados de búsqueda, últimas noticias, etc., fuera de consideración), entonces podemos hablar de una URL marcable. El término técnico es “una solicitud HTTP idempotente “.

Sin embargo, si el usuario final ha enviado previamente un formulario POST en esa URL, que no ha realizado una redirección, la URL no es necesariamente marcable. Los datos del formulario enviado no se reflejan en la URL. Copiar el URL en una nueva ventana / pestaña del navegador no necesariamente arrojará exactamente el mismo resultado que después del envío del formulario. Tal URL no es marcable. POST no es idempotente. Es por eso que la navegación de página a página por los enlaces de comando es mala .

La marcabilidad de libros generalmente se logra mediante una construcción específica de la ruta URL y / o parámetros de consulta. Si miras a Google, los resultados de búsqueda son marcadores gracias al parámetro de cadena de consulta q .

http://google.com/search?q=bookmarkability

En términos JSF, esos parámetros de solicitud se pueden establecer (y convertir y validar) a través de :

     

Si necesita realizar, por ejemplo, paginación, y desea mantener la URL como favorita, puede agregar otro parámetro de solicitud:

http://google.com/search?q=bookmarkability&start=10

con

      

El includeViewParams="true" básicamente incluye todos los parámetros de vista en el enlace GET generado. Con la ayuda de esto, los enlaces de paginación pueden verse así sin la necesidad de repetir el parámetro q :

          ... 

(por supuesto generado por algunos o menos)

Al ingresar a la página con q=bookmarkability , esto producirá los siguientes enlaces

 /search.xhtml?q=bookmarkability /search.xhtml?start=10&q=bookmarkability /search.xhtml?start=20&q=bookmarkability 

Esas son URLs marcadas y el includeViewParams hizo que includeViewParams más conveniente.