Liferay:在一个liferay插件项目中配置多个Spring MVC Portlet,其中包含一个通用控制器和多个登录页面

时间:2014-12-16 04:24:33

标签: java spring spring-mvc liferay-6

我在liferay中开发基于Spring MVC的portlet。基本上我想在一个liferay项目中配置和维护2或3个portlet。有些人可以指导我所需的配置。像portlet.xml的配置代码,spring配置和web配置(如果需要)。我只需要为我的所有portlet配置一个默认控制器,这样每个portlet都会落在不同的登陆页面中。

有人知道如何配置这些portlet吗?任何建议都会有所帮助。

提前致谢。

2 个答案:

答案 0 :(得分:1)

据我了解,您希望在一个.war文件中配置多个portlet。这非常简单,您需要做的就是在几个xml文件中正确配置它们。下面我为您准备了在3.4 liferay版本中定义3个portlet所需的几个配置文件:

<强>的liferay-display.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>

<强>的liferay-portlet.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>

<强> portlet.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.xml中定义的每个portlet添加上下文文件

这是树,它最终应该看起来像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

答案 1 :(得分:0)

我与你分享一些资源可能是他们帮助你。如果你仍然无法得到它,我将分享我的一个例子。

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

相关问题