Liferay:在一个liferay插件项目中配置多个Spring MVC Portlet

时间:2014-05-25 09:12:06

标签: java spring-mvc liferay-6 spring-portlet-mvc

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

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

提前致谢。

1 个答案:

答案 0 :(得分:4)

是的,可以在单个插件项目中配置多个spring portlet,使单个.war文件包含多个portlet。

在web.xml中

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>view-servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.ViewRendererServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>view-servlet</servlet-name>
    <url-pattern>/WEB-INF/servlet/view</url-pattern>
</servlet-mapping>

在applicationContext.xml

您可以在此处为所有portlet指定公共bean配置。

<context:annotation-config />
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
    <property name="cache" value="false"/>
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/jsp/"/>
    <property name="suffix" value=".jsp"/>
    <property name="contentType" value="text/html; charset=UTF-8" />
</bean>

在portlet.xml中

您可以指定&lt; portlet&gt;的多个条目在这个文件中。对于spring portlet,您应该指定&lt; portlet-class&gt;和&lt; init-param&gt;如下。

    <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
    <init-param>
        <name>contextConfigLocation</name>
        <value>classpath:myportlet-context.xml</value>
    </init-param>

在myportlet-context.xml中

将您的portlet控制器类放在my.portlet.package中,并在此文件中指定它。

  

&lt; context:component-scan base-package =“my.portlet.package”/&gt;

在liferay-portlet.xml中

即使这个文件包含多个&lt; portlet&gt;标签

在您的portlet控制器类中

添加注释以指定控制器并使用portlet模式进行映射。您可以在这里看到Spring文档中提供的各种其他映射。

  

@Controller

     

@RequestMapping(value = PortletModeVal.VIEW)

     

public class MyPortletControll实现了PortletConfigAware