以往,每编写一个工程中,只写一个portlet应用。而portlet首页就已经固定了。如果不让首页固定,还得再写一个工程。这种方法要web服务额外加载了一组工程配置。显然,是不可取的方法。下面我将介绍,怎样把两个portlet写在一个project工程中。
需要改写4个文件:分别为web.xml ; portlet.xml ; liferay-portlet.xml; liferay-display.xml;
(蓝色是原有的portlet,红色是新加的portlet)
1、web.xml 增加两处(增加一个portlet-servlet映射)
<servlet>
<servlet-name>dianZiQianMing</servlet-name>
<servlet-class>com.liferay.portal.kernel.servlet.PortletServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>dianZiQianMing2</servlet-name>
<servlet-class>com.liferay.portal.kernel.servlet.PortletServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dianZiQianMing</servlet-name>
<url-pattern>/dianZiQianMing/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dianZiQianMing2</servlet-name>
<url-pattern>/dianZiQianMing2/*</url-pattern>
</servlet-mapping>
2、portlet.xml 增加一处
<portlet>
<portlet-name>dianZiQianMing</portlet-name>
<display-name>dianZiQianMing</display-name>
<portlet-class>com.sample.strutsliferay.portlet.SampleStrutsLiferayPortlet</portlet-class>
<init-param>
<name>view-action</name>
<value>/dianZiQianMing/start</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title>dianZiQianMing</title>
<short-title>dianZiQianMing</short-title>
<keywords>dianZiQianMing</keywords>
</portlet-info>
<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>
<portlet-name>dianZiQianMing2</portlet-name>
<display-name>dianZiQianMing</display-name> <!-- 共用一个web中的名字 -->
<portlet-class>com.sample.strutsliferay.portlet.SampleStrutsLiferayPortlet</portlet-class>
<init-param>
<name>view-action</name>
<value>/dianZiQianMing/list</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title>dianZiQianMing2</title>
<short-title>dianZiQianMing2</short-title>
<keywords>dianZiQianMing2</keywords>
</portlet-info>
<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>
3、liferay-portlet.xml 增加一处
<portlet>
<portlet-name>dianZiQianMing</portlet-name>
<struts-path>dianZiQianMing</struts-path>
<use-default-template>true</use-default-template>
<restore-current-view>false</restore-current-view>
<instanceable>true</instanceable>
<private-request-attributes>false</private-request-attributes>
</portlet>
<portlet>
<portlet-name>dianZiQianMing2</portlet-name>
<struts-path>dianZiQianMing</struts-path>
<use-default-template>true</use-default-template>
<restore-current-view>false</restore-current-view>
<instanceable>true</instanceable>
<private-request-attributes>false</private-request-attributes>
</portlet>
4、liferay-display.xml 增加一处
<display>
<category name="lnzy_cyw">
<portlet id="dianZiQianMing"></portlet>
<portlet id="dianZiQianMing2"></portlet>
</category>
</display>