浏览 1676 次
锁定老帖子 主题:【转帖】liferay配置说明
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-03
转自:http://www.cnpoint.com/web/2007/0119/content_5228.htm 关于Liferay的配置文件 —— 基于Struts开发Portlet 结合Liferay实例sample-struts-portlet,基于Struts开发Portlet一般具有以下配置文件: liferay-display.xml liferay-portlet.xml portlet.xml struts-config.xml tiles-defs.xml web.xml -------------------------------------------------------------------------------- (1)liferay-display.xml (定义Portal 中Portlet 管理的目录结构) 配置在Portlet 的显示名称,以及该portlet 在显示列表中所在的目录。值得注意的是该处并没有直接给出在Portlet 显示列表中的显示名字,而是给出了Portlet ID,根据在porlet.xml 中portlet ID与Name 的关联,可得到该Portlet 的显示名字。 <display> <category name="category.test"> <portlet id="sample_struts_portlet" /> </category> </display> 效果:添加porlet 内容时,也就是在点击“add content” 时,名叫sample_struts_portlet 的portlet 将在目录中的test 项下显示。 (2)liferay-portlet.xml (定义基于Liferay Portal 下的Portlet 的特有属性) 该配置文件定义portlet 属性和角色,该配置文件对基于JSR168的 portlet.xml 的属性进行扩展。 <liferay-portlet-app> <portlet> <!-- 配置portlet 名,该名应对应于liferay-display.xml 中portlet 的id 属性 --> <portlet-name>sample_struts_portlet</portlet-name> <!-- 配置portlet 的实现类,该类响应该portlet 的请求,实现功能 --> <portlet-url-class> com.liferay.portal.apache.bridges.struts.LiferayStrutsPortletURLImpl </portlet-url-class> <use-default-template>true</use-default-template> <restore-current-view>true</restore-current-view> </portlet> <!-- 配置该portlet 的角色,以及角色的显示名字,角色名role-name 是由portlet.xml 中进行定义 --> <role-mapper> <role-name>administrator</role-name> <role-link>Administrator</role-link> </role-mapper> <role-mapper> <role-name>guest</role-name> <role-link>Guest</role-link> </role-mapper> <role-mapper> <role-name>power-user</role-name> <role-link>Power User</role-link> </role-mapper> <role-mapper> <role-name>user</role-name> <role-link>User</role-link> </role-mapper> </liferay-portlet-app> 效果:该portlet 由com.liferay.portal.apache.bridges.struts.LiferayStrutsPortletURLImpl 类的实例进行处理,允许使用模版和实时刷新页面。可配置administrator,guest,power-user,user 四种角色对其拥有不同的权限。 (3)portlet.xml (Portlet 的标准属性,该配置文件中的各项属性符合JSR168 标准,并非Liferay专用) 该配置文件设置Portlet的各个属性,该各项属性在Portlet初始化时得以加载。 <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> <portlet> <portlet-name>sample_struts_portlet</portlet-name> <!-- display-name 即为该Portlet显示的名字,liferay-display.xml 中配置了Portlet id,关联该配置文件可找到其显示的名字,如下“Sample Struts Portlet" --> <display-name>Sample Struts Portlet</display-name> <!-- 由于在开发Portlet 时必须继承Portlet 的基础类,而此处是基于Struts 开发Portlet 时可继承该类 --> <portlet-class>org.apache.portals.bridges.struts.StrutsPortlet</portlet-class> <!-- init-param 标签表示Portlet 的初始化参数 ,由name 标签和 value 标签指明其名字和值的一对数据 --> <init-param> <name>ServletContextProvider</name> <!-- 其值为该Portlet 可接收响应的URL或者类,URL 对应的类是哪个由Struts-config.xml 定义--> <value>com.liferay.util.apache.bridges.struts.LiferayServletContextProviderWrapper</value> </init-param> <init-param> <name>EditPage</name> <value>/portlet_action/sample_struts_portlet/edit</value> </init-param> <init-param> <name>HelpPage</name> <value>/portlet_action/sample_struts_portlet/help</value> </init-param> <init-param> <name>ViewPage</name> <value>/portlet_action/sample_struts_portlet/view</value> </init-param> <expiration-cache>0</expiration-cache> <!-- 定义该Portlet 所支持的功能,体现在每个Portlet 的展现模式 --> <supports> <mime-type>text/html</mime-type> <portlet-mode>edit</portlet-mode> <portlet-mode>help</portlet-mode> </supports> <portlet-info> <title>Sample Struts Portlet</title> <short-title>Sample Struts Portlet</short-title> <keywords>Sample Struts Portlet</keywords> </portlet-info> <!-- 指明对该Portlet 可能拥有权限的角色,该角色定义决定了liferay-portlet.xml 所配置的角色名 --> <security-role-ref> <role-name>administrator</role-name> </security-role-ref> <security-role-ref> <role-name>guest</role-name> </security-role-ref> <security-role-ref> <role-name>power-user</role-name> </security-role-ref> <security-role-ref> <role-name>user</role-name> </security-role-ref> </portlet> </portlet-app> 效果:定义了Portlet 的基本信息,展现方式,以及对该Portlet 可能分配权限的用户角色。 (4)struts-config.xml (该配置文件为Struts 的配置文件,并非Liferay 专用) <struts-config> <!-- Forms Beans --> <form-beans> <form-bean name="subscribeForm" type="com.sample.struts.struts.form.SubscribeForm" /> <form-bean name="unsubscribeForm" type="com.sample.struts.struts.form.UnsubscribeForm" /> <form-bean name="uploadForm" type="com.sample.struts.struts.form.UploadForm" /> </form-beans> <!-- Action Mappings --> <action-mappings> <!-- Sample Struts --> <action path="/sample_struts_portlet/edit" forward="portlet.sample_struts_portlet.edit" /> <action path="/sample_struts_portlet/help" forward="portlet.sample_struts_portlet.help" /> <action path="/sample_struts_portlet/subscribe/action" type="com.sample.struts.struts.action.SubscribeAction" name="subscribeForm" scope="session" validate="true" input="portlet.sample_struts_portlet.subscribe"> <forward name="/sample_struts_portlet/subscribe_success" path="/portlet_action/sample_struts_portlet/subscribe_success" redirect="true" /> </action> <!-- …… 该处省略的雷同的设置代码 …… --> <!-- Custom Request Processor --> <controller processorClass="org.apache.portals.bridges.struts.PortletTilesRequestProcessor" /> <!-- Message Resources --> <message-resources parameter="content.test.Language" /> <!-- Tiles Plugin --> <plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" /> <set-property property="moduleAware" value="true" /> <set-property property="definitions-parser-validate" value="true" /> </plug-in> <!-- Validator Plugin --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in> </struts-config> 效果:此处可与其它基于Struts 应用开发同样配置,与Liferay 相互独立。 (5)tiles-defs.xml (该配置文件是利用Tile 进行页面的布局管理,并非Liferay 专用) <tiles-definitions> <!-- 关于页面的布局定义,表示当请求的Url为 portlet.sample_struts_portlet 则以路径path参数指定的 /html/portlet/sample_struts_portlet/template.jsp 页面进行响应--> <definition name="portlet.sample_struts_portlet" path="/html/portlet/sample_struts_portlet/template.jsp" /> <!-- 关于页面的布局定义,表示名为 portlet.sample_struts_portlet.edit Url 的页面嵌套页面 /portlet/sample_struts_portlet/edit.jsp --> <definition name="portlet.sample_struts_portlet.edit" extends="portlet.sample_struts_portlet"> <put name="portlet_content" value="/portlet/sample_struts_portlet/edit.jsp" /> </definition> <!-- …… 该处省略的雷同的设置代码 …… --> <tiles-definitions> 效果:此处可与其它基于Tiles 应用开发同样配置,与Liferay 相互独立。 (6)web.xml (该配置文件为Tomcat 的应用配置文件,并非Liferay 专用) <web-app> <!-- 注意:此处的display-name与portlet.xml 中的display-name 含义不同,此处仅标识在Tomcat 下的应用编写此不得与其它Portlet 和发布的其他应用标识重名 --> <display-name>sample-struts-portlet</display-name> <context-param> <param-name>company_id</param-name> <param-value>liferay.com</param-value> </context-param> <listener> <listener-class>com.liferay.portal.kernel.servlet.PortletContextListener</listener-class> </listener> <servlet> <servlet-name>sample_struts_portlet</servlet-name> <servlet-class>com.liferay.portal.kernel.servlet.PortletServlet</servlet-class> <init-param> <param-name>portlet-class</param-name> <param-value>org.apache.portals.bridges.struts.StrutsPortlet</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet> <servlet-name>PortletActionServlet</servlet-name> <servlet-class>com.liferay.util.apache.bridges.struts.LiferayPortletServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>TestSessionServlet</servlet-name> <servlet-class>com.sample.struts.servlet.TestSessionServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>sample_struts_portlet</servlet-name> <url-pattern>/sample_struts_portlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PortletActionServlet</servlet-name> <url-pattern>/portlet_action/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>TestSessionServlet</servlet-name> <url-pattern>/test_session/*</url-pattern> </servlet-mapping> <taglib> <taglib-uri>http://java.sun.com/portlet</taglib-uri> <taglib-location>/WEB-INF/tld/liferay-portlet.tld</taglib-location> </taglib> <taglib> <taglib-uri>http://struts.apache.org/tags-bean</taglib-uri> <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>http://portals.apache.org/bridges/struts/tags-portlet-html</taglib-uri> <taglib-location>/WEB-INF/tld/struts-portlet-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>http://struts.apache.org/tags-logic</taglib-uri> <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>http://struts.apache.org/tags-nested</taglib-uri> <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location> </taglib> <taglib> <taglib-uri>http://struts.apache.org/tags-tiles</taglib-uri> <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location> </taglib> </web-app> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |