Liferay:在一个Liferay插件项目中配置多个Spring MVC Portlet,具有一个通用控制器和多个登录



我正在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

最新更新