Texto original.(inglés, mas detallado)

JSF es un framework especial. No contempla de manera clásica el MVC que todos conocemos. A cambio trabaja con objetos puros que intercambian datos a través de los backingbeans. No obstante, a veces necesitamos realizar cosas puntuales y no sabemos como resolverlos.
Por ejemplo, leer variables pasadas por URL.

Las variables de tipo GET pasadas a través de URL como:

http://host/app/page.jsf?productId=101

En donde, en este caso la variable llamada productId es igual a 101.

En JSF en la versión 2.x maneja de manera muy simple la lectura de esta variable.

Tenemos que agregar:

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

En la cual, el bean.productId almacena en dicha propiedad el valor obtenido por URL.
A continuación, un posible lugar en donde ubicar el tag:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head></h:head>

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

<body>
  ...
</body>
</html>
Anuncios