我正在liferay中开发基于Spring MVC的Portlet。基本上,我想在单个Liferay项目中配置和维护2或3个Portlet。有些人可以指导我进行相同的配置。比如 portlet.xml、spring config 和 web config 的配置代码(如果需要的话)。我只需要为所有 Portlet 配置一个默认控制器,以便每个 Portlet 都进入不同的登录页面。
有人知道如何配置这些组件吗?任何建议都会有所帮助。
提前谢谢。
据我了解,您希望在一个 .war 文件中配置多个 portlet。这非常简单,您需要做的就是在几个 xml 文件中正确配置它们。下面我为您准备了一些在 6.2 liferay 版本中定义 3 个 portlet 所需的配置文件:
生命射线显示.xml
<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 6.2.0//EN" "http://www.liferay.com/dtd/liferay-display_6_2_0.dtd">
<display>
<category name="category.amg">
<portlet id="first-portlet" />
<portlet id="second-portlet" />
<portlet id="third-portlet" />
</category>
</display>
生命射线-波特莱特.xml
<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.2.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_2_0.dtd">
<liferay-portlet-app>
<portlet>
<portlet-name>first-portlet</portlet-name>
<icon>/icon.png</icon>
<instanceable>true</instanceable>
<private-request-attributes>false</private-request-attributes>
<requires-namespaced-parameters>false</requires-namespaced-parameters>
<render-weight>1000</render-weight>
</portlet>
<portlet>
<portlet-name>second-portlet</portlet-name>
<icon>/icon.png</icon>
<instanceable>true</instanceable>
<private-request-attributes>false</private-request-attributes>
<requires-namespaced-parameters>false</requires-namespaced-parameters>
<render-weight>1000</render-weight>
</portlet>
<portlet>
<portlet-name>third-portlet</portlet-name>
<icon>/icon.png</icon>
<instanceable>false</instanceable>
<private-request-attributes>false</private-request-attributes>
<requires-namespaced-parameters>false</requires-namespaced-parameters>
<render-weight>1000</render-weight>
</portlet>
<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>
组件.xml
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app version="2.0"
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
<portlet>
<portlet-name>first-portlet</portlet-name>
<display-name>first-portlet</display-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/context/first-portlet.xml</value>
</init-param>
<init-param>
<name>check-auth-token</name>
<value>false</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
</supports>
<supported-locale>pl</supported-locale>
<supported-locale>en</supported-locale>
<resource-bundle>portlets-names.first-portlet</resource-bundle>
<portlet-info>
<title>first portlet</title>
<short-title>first</short-title>
<keywords>first</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>second-portlet</portlet-name>
<display-name>second-portlet</display-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/context/second-portlet.xml</value>
</init-param>
<init-param>
<name>check-auth-token</name>
<value>false</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
</supports>
<supported-locale>pl</supported-locale>
<supported-locale>en</supported-locale>
<resource-bundle>portlets-names.second</resource-bundle>
<portlet-info>
<title>second portlet</title>
<short-title>second</short-title>
<keywords>second</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>third-portlet</portlet-name>
<display-name>third-portlet</display-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/context/third-portlet.xml</value>
</init-param>
<init-param>
<name>check-auth-token</name>
<value>false</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<supported-locale>pl</supported-locale>
<supported-locale>en</supported-locale>
<resource-bundle>portlets-names.third</resource-bundle>
<portlet-info>
<title>third portlet</title>
<short-title>third</short-title>
<keywords>third</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-app>
还要确保为 Portlet 中定义的每个 Portlet 添加上下文文件.xml
这是树,对于 3 个 Portlet,它最终应该是什么样
子.
├── main
│ ├── java
..... your java sources.....
.....................
│ ├── resources
│ │ ├── first-portlet_en_US.properties
│ │ ├── first-portlet_pl_PL.properties
│ │ ├── first-portlet.properties
│ │ ├── second-friendly-url-routes.xml
│ │ ├── second-portlet_en_US.properties
│ │ ├── second-portlet_pl_PL.properties
│ │ ├── second-portlet.properties
│ │ ├── third-friendly-url-routes.xml
│ │ ├── third-portlet_en_US.properties
│ │ ├── third-portlet_pl_PL.properties
│ │ ├── third-portlet.properties
│ │ ├── portlet.properties
│ │ ├── portlets-names
│ │ │ ├── first_en_US.properties
│ │ │ ├── first_pl_PL.properties
│ │ │ ├── first.properties
│ │ │ ├── second_en_US.properties
│ │ │ ├── second_pl_PL.properties
│ │ │ ├── second.properties
│ │ │ ├── third_en_US.properties
│ │ │ ├── third_pl_PL.properties
│ │ │ ├── third.properties
│ │ └── resource-actions
│ │ └── default.xml
│ └── webapp
│ ├── css
│ │ └── third-uploader.css
│ ├── icon.png
│ └── WEB-INF
│ ├── context
│ │ ├── first-portlet.xml
│ │ ├── common.xml
│ │ ├── second-portlet.xml
│ │ └── third-portlet.xml
│ ├── jsp
│ │ ├── first
│ │ │ ├── article-details-view.jsp
│ │ │ ├── first-edit.jsp
│ │ │ └── first-view.jsp
│ │ ├── second
│ │ │ ├── second-details-view.jsp
│ │ │ ├── second-edit.jsp
│ │ │ └── second-list-view.jsp
│ │ ├── init.jsp
│ │ └── third
│ │ ├── third-filter-view.jsp
│ │ ├── third-more-page-view.jsp
│ │ ├── third-view.jsp
│ │ └── uploader
│ │ └── uploader-view.jsp
│ ├── liferay-display.xml
│ ├── liferay-plugin-package.properties
│ ├── liferay-portlet.xml
│ ├── log4j.properties
│ ├── portlet.xml
│ └── web.xml
└── test
我正在与您分享一些资源,也许它们对您有所帮助。如果你仍然无法得到它,我将分享我的例子之一。
http://www.opensource-techblog.com/2012/09/spring-mvc-portlet-in-liferay.html
http://www.opensource-techblog.com/2012/09/spring-mvc-portlet-in-liferay.html