lunes, 9 de febrero de 2009

getParameter en JSF

En JSF todos los valores de los formularios se pasan por ManagedBeans (con más detalle lo veremos en el curso que está a punto de salir)
Pero ¿qué pasa si queremos procesar una petición con parámetros? En Java web y Struts podemos acceder a los parámetros a través del objeto implícito "request", pero JSF no hay ese objeto implícito ¿qué se hace?

Bueno, para acceder al objeto request debemos hacer lo siguiente:
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();


A partir de allí, podemos usar el objeto request. Ahora, los nombres de los controles tendrán un ligero cambio. Estará compuesto por el "id" del formulario y del "id" del mismo control. Por ejemplo, consideremos este .jsp
<h:form id="form0">
<h:outputLabel value="Escriba número:"/>
<h:inputText id="numeroText" value="#{form.numero}" /><br/>
...

Entonces, para acceder al input-text, escribimos:
String num=request.getParameter("form0:numeroText");