Creación de portlets y proyectos de Faces

Los proyectos de portlet Faces comparten algunas características comunes con los proyectos Faces y portlet estándar, aunque hay algunas diferencias que hay que tener en cuenta.

Los proyectos de portlet Faces se crean utilizando el asistente Proyecto de portlet nuevo o el asistente Proyecto de portlet nuevo (JSR 168), según la API de portlet en la que desee basar el proyecto. En el proceso de creación del proyecto, se añadirá un portlet Faces por omisión. El asistente genera automáticamente los archivos de configuración del portlet Faces, la estructura de directorios necesaria y las actualizaciones correspondientes al archivo web.xml.

Los tipos de recursos siguientes, definidos mediante las API de portlet Faces, se incluirán en el proyecto.
Tipo de recurso Archivos Directorio de destino Notas
JARs Todos los archivos *.jar de Faces obligatorios WEB-INF/lib  
Archivos de configuración faces-config.xml WEB-INF Incluye lo siguiente:
  • La versión de portlet de FacesContextFactory
  • La variable resolver para los objetos API de portlet
Descriptores de despliegue
  • web.xml
  • portlet.xml
WEB-INF

En el archivo web.xml estándar se realizan las modificaciones siguientes:

  • Ses añade el servlet com.ibm.faces.webapp.JSResourceServlet.
  • Los códigos servlet y servlet-mapping tienen atributos de identificación con valores de cadena, sufijos con identificadores exclusivos para evitar conflictos con otros portlets.
En portlet.xml se incluye la información siguiente:
  • Se incluye la configuración de modalidad portlet.
  • Se proporcionan valores config-param relativos al portlet Faces.
Los fragmentos del archivo descriptor de despliegue y de la configuración de ejemplo que se muestran a continuación muestran los códigos representativos que se utilizan en los proyectos de portlet Faces:
faces-config.xml
Un elemento de escucha en fase del ciclo de vida será notificado al principio y al final del procesamiento para cada fase estándar del ciclo de vida del procesamiento de la petición. Para más información, consulte PhaseListener javadoc. Además, para una descripción adicional de cada fase, consulte PhaseId javadoc. En los archivos de configuración de Faces se añade el apartado de ciclo de vida siguiente:
	<lifecycle>
		<phase-listener>com.ibm.faces.webapp.ValueResourcePhaseListener</phase-listener>
	</lifecycle>
La API FactoryFinder proporciona información sobre fábricas, así como enlaces a fábricas concretas. En los archivos de configuración de Faces se añade el apartado de buscador de factorías siguiente para un portlet API de IBM:
	<factory>
		<faces-context-factory>com.ibm.faces.context.WPPortletFacesContextFactoryImpl</faces-context-factory>
	</factory>
Para un portlet API JSR 168, la factoría se define así:
	<factory>
		<faces-context-factory>com.ibm.faces.context.PortletFacesContextFactoryImpl</faces-context-factory>
	</factory>
Los apartados VariableResolver también se añaden para cada uno de los tipos de API:
<!-- variable/property resolver registration [IBM portlet API] -->
	<application>
		<variable-resolver>com.ibm.faces.databind.SelectItemsVarResolver</variable-resolver>
		<variable-resolver>
		com.ibm.faces.application.WPPortletVariableResolver</variable-resolver>
		<property-resolver>com.ibm.faces.databind.SelectItemsPropResolver</property-resolver>
	</application>
o
<!-- variable/property resolver registration [JSR 168 portlet API] -->
	<application>
		<variable-resolver>com.ibm.faces.databind.SelectItemsVarResolver</variable-resolver>
		<variable-resolver>
		com.ibm.faces.application.PortletVariableResolver</variable-resolver>
		<property-resolver>com.ibm.faces.databind.SelectItemsPropResolver</property-resolver>
	</application>
web.xml
Muestra un servlet portlet Faces de ejemplo añadido a web.xml:
<servlet id="Nombre_exclusivo_servlet_Faces">
		<servlet-name>faces_portlet.FacesPortletPortlet</servlet-name>
		<display-name>faces_portlet.FacesPortletPortlet</display-name>
		<servlet-class>com.ibm.faces.webapp.WPFacesGenericPortlet</servlet-class>
</servlet>
Este es un ejemplo de servlet portlet Faces de correlación con servlet.
<servlet-mapping>
      <servlet-name>faces_portlet.FacesPortletPortlet</servlet-name>
      <url-pattern>/faces_portlet.FacesPortletPortlet/*</url-pattern>
</servlet-mapping>
portlet.xml
Este es un ejemplo de aplicación definida de portlet Faces en portlet.xml:
<portlet-app-def>
	<portlet-app uid="faces_portlet.FacesPortletPortlet.Un_ID_exclusivo:1" version-mayor="1" versión-menor="0">
		<portlet-app-name>Faces Portlet application</portlet-app-name>
		<portlet id="faces_portlet.FacesPortletPortlet" href="WEB-INF/web.xml#Servlet_Un_ID_exclusivo:2" versión-mayor="1" versión-menor="0">
			<portlet-name>Faces Portlet portlet</portlet-name>
			<cache>
				<expires>0</expires>
				<shared>no</shared>
			</cache>
			<allows>
				<maximized />
				<minimized />
			</allows>
			<supports>
				<markup name="html">
					<view />
					<edit />
				</markup>
			</supports>
		</portlet>
	</portlet-app>
	<concrete-portlet-app uid="faces_portlet.FacesPortletPortlet.Un_ID_exclusivo:3">
		<portlet-app-name>Faces Portlet application</portlet-app-name>
		<concrete-portlet href="#faces_portlet.FacesPortletPortlet">
			<portlet-name>Faces Portlet portlet</portlet-name>
			<default-locale>en</default-locale>
			<language locale="en">
				<title>Faces Portlet portlet</title>
				<title-short></title-short>
				<description></description>
				<keywords></keywords>
			</language>
			<config-param>
				<param-name>com.ibm.faces.portlet.page.view</param-name>
				<param-value>/FacesPortletView.jsp</param-value>
			</config-param>
			<config-param>
				<param-name>com.ibm.faces.portlet.page.edit</param-name>
				<param-value>/FacesPortletEdit.jsp</param-value>
			</config-param>
		</concrete-portlet>
	</concrete-portlet-app>
</portlet-app-def>  

Conceptos relacionados
Datos dinámicos utilizando componentes de Faces
Aplicaciones portlet Faces de JavaServer

Tareas relacionadas
Creación de proyectos de portlet Faces
Creación de portlets Faces
Adición y actualización de modalidades de portlet Faces para los portlets IBM existentes
Adición y actualización de modalidades de portlet Faces para los portlets JSR 168 existentes
Creación de archivos JSP de portlet Faces
Creación de aplicaciones Faces - Visión general

Referencia relacionada
Referencia de componentes de Faces
Atributos para componentes de Faces

(C) Copyright IBM Corporation 2002, 2005. Reservados todos los derechos.