虽然 Faces portlet 项目与标准 portlet 和 Faces 项目有一些公共特征,但是仍存在一些您应该注意的差别。
根据项目基于的 portlet API,使用“新建 Portlet 项目”向导或“新建 Portlet 项目(JSR 168)”向导来创建 Faces portlet 项目。将在创建项目过程中添加缺省 Faces portlet。该向导将自动生成 Faces portlet 配置文件、所需的目录结构和对 web.xml 文件的必需更新。
资源类型 | 文件 | 目标目录 | 注 |
---|---|---|---|
JAR | 所有必需的 Faces *.jar 文件 | WEB-INF/lib | |
配置文件 |
|
WEB-INF | |
部署描述符 |
|
WEB-INF | 对标准 web.xml 文件进行了下列修改:
以下信息包括在 portlet.xml 中:
|
<lifecycle> <phase-listener>com.ibm.faces.webapp.ValueResourcePhaseListener</phase-listener> </lifecycle>FactoryFinder API 提供关于工厂的信息以及指向特定工厂的链接。下列工厂 finder 段已添加至 Faces 配置文件:
<factory> <faces-context-factory>com.ibm.faces.context.WPPortletFacesContextFactoryImpl</faces-context-factory> </factory>
<servlet id="Faces_Unique_Servlet_Name"> <servlet-name>faces_portlet.FacesPortletPortlet</servlet-name> <display-name>faces_portlet.FacesPortletPortlet</display-name> <servlet-class>com.ibm.faces.webapp.WPFacesGenericPortlet</servlet-class> </servlet>以下是 Faces portlet servlet 的 servlet 映射示例。
<servlet-mapping> <servlet-name>faces_portlet.FacesPortletPortlet</servlet-name> <url-pattern>/faces_portlet.FacesPortletPortlet/*</url-pattern> </servlet-mapping>
<portlet-app-def> <portlet-app uid="faces_portlet.FacesPortletPortlet.A_Unique_ID:1" major-version="1" minor-version="0"> <portlet-app-name>Faces Portlet application</portlet-app-name> <portlet id="faces_portlet.FacesPortletPortlet" href="WEB-INF/web.xml#Servlet_A_Unique_ID:2" major-version="1" minor-version="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.A_Unique_ID: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>