1、添加对应的spring的jar

地址:https://spring.io/projects

选中springframework

进入git源码的地方,看简介

我们需要编译好的jar

当然也可以自己编译,不过我没干过

接下来就很麻烦了,就是要找到spring的目录

一直往下翻,翻到org目录

选中对应的文件,右键下载

2、吧lib添加到对应的liferay插件目录中

3、配置spring进入项目

修改portlet.xml配置文件

参考spring给的范例:

    <!-- spring portlet start -->

    <portlet>
<portlet-name>springmvc-sample</portlet-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<portlet-info>
<title>Sample Portlet</title>
</portlet-info>
</portlet> <!-- srping portlet end -->

  

根据spring官方文档,展示的portlet配置方式

spring配置会对对应的web-inf目录下的文件名为:[portlet-name]-portlet.xml进行解析

 注意在这个配置文件中配置的对象会覆盖webapplicationContext中的对象

创建这个文件

springmvc-sample-portlet.xml

初始化spring配置文件,后面关于spring的配置就可以放在这里

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> </beans>

接下来我们创建一个spring的controller

SampleController.java

package com.xiaof.springportlet.controller;

import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse; import org.springframework.web.portlet.ModelAndView;
import org.springframework.web.portlet.mvc.AbstractController; /**
* 测试spring-portlet功能
* @author xiaof
*
* 所有spring portlet的控制器都继承于AbstractController
*/
public class SampleController extends AbstractController { public ModelAndView handleRenderRequestInternal(RenderRequest request,
RenderResponse response) throws Exception { ModelAndView mav = new ModelAndView("foo");
mav.addObject("message", "hello world spring portlet!"); return mav;
}
}

我们把这个bean配置进去,在配置之前我们了解一下spring配置的controller可以修改portlet的那些属性

这点我们写在配置文件中

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <bean id="sampleController" class="com.xiaof.springportlet.controller.SampleController">
<!--
这里可以配置的属性有4个,原谅我的英语不好,基本都是百度翻译,
requireSession: 标识这个控制器是否需要一个session来工作,这个功能适用所有controller,
当前controller使用的不是当前控制器的session的时候,抛出SessionRequiredException
synchronizeSession(synchronizeOnSession 4.3版本):如果需要controller在用户回话上保持同步指定这个,如果指定此变量扩展控制器覆盖handlerenderrequestinternal(..)
和handleactionrequestinternal(..)方法,并将同步用户的会话。
注意实际应该是:synchronizeOnSession而不是synchronizeSession
renderWhenMinimized:如果您希望控制器在portlet处于最小化状态时实际呈现视图,请将其设置为true。默认情况下,
此设置为false,portlet,在最小化状态,不显示任何内容。
cacheSeconds:当您想要控制器重写portlet定义的默认缓存过期时,在这里指定一个正整数。
默认情况下,它被设置为- 1,不会改变默认缓存。将其设置为0将确保结果永远不会缓存。 最后除了最后一个参数是给整数,其余参数都是Boolean类型
-->
<property name="cacheSeconds" value="120" />
</bean> </beans>

结果发现liferay会吧“-“屏蔽掉,所以配置文件名字改为  springmvcsample-portlet.xml

修改配置文件,显示页面

修改展示名称

为了方便访问对应的jsp页面,我们在spring配置文件中设置对应的前缀和后缀

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <bean id="sampleController" class="com.xiaof.springportlet.controller.SampleController">
<!--
这里可以配置的属性有4个,原谅我的英语不好,基本都是百度翻译,
requireSession: 标识这个控制器是否需要一个session来工作,这个功能适用所有controller,
当前controller使用的不是当前控制器的session的时候,抛出SessionRequiredException
synchronizeSession(synchronizeOnSession 4.3版本):如果需要controller在用户回话上保持同步指定这个,如果指定此变量扩展控制器覆盖handlerenderrequestinternal(..)
和handleactionrequestinternal(..)方法,并将同步用户的会话。
注意实际应该是:synchronizeOnSession而不是synchronizeSession
renderWhenMinimized:如果您希望控制器在portlet处于最小化状态时实际呈现视图,请将其设置为true。默认情况下,
此设置为false,portlet,在最小化状态,不显示任何内容。
cacheSeconds:当您想要控制器重写portlet定义的默认缓存过期时,在这里指定一个正整数。
默认情况下,它被设置为- 1,不会改变默认缓存。将其设置为0将确保结果永远不会缓存。 最后除了最后一个参数是给整数,其余参数都是Boolean类型
-->
<property name="cacheSeconds" value="120" />
</bean> <bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean> </beans>

在前天页面展示出来

controller代码

package com.xiaof.springportlet.controller;

import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.ModelAndView;
import org.springframework.web.portlet.bind.annotation.RenderMapping;
import org.springframework.web.portlet.mvc.AbstractController; /**
* 测试spring-portlet功能
* @author xiaof
*
* 所有spring portlet的控制器都继承于AbstractController
* 这里requestmapping模式必须为view模式,对应portlet中的portlet-mode
*/
@RequestMapping("view")
public class SampleController extends AbstractController { /**
* 注意这里使用的是@RenderMapping,可以不用
* 因为这里是handleRenderRequestInternal方法,默认会被执行
*/
// @RenderMapping
public ModelAndView handleRenderRequestInternal(RenderRequest request,
RenderResponse response) throws Exception { System.out.println("test spring portlet!!!");
ModelAndView mav = new ModelAndView("springmvc-sample/view");
mav.addObject("message", "</br>hello world spring portlet!"); return mav;
}
}

控制台输出:

页面:

view.jsp源码

<%@ page contentType="text/html; charset=utf-8" language="java"
pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%> <meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache"> <portlet:defineObjects /> 这个spring portlet 的message为
${message }

【liferay】3、liferay 添加spring支持的更多相关文章

  1. myeclipse重新添加spring支持

    需求:添加一次可能失败,需要再添加,但是一般点击右键add spring capabilities 不存在了 解决办法: 打开工程找到.project 注释掉spring支持 重新项目右键加入支持即可 ...

  2. motan解读:添加spring 支持

    代码位置: motan-core的目录下       motan中使用spring管理配置对象.motan利用Spring的spi机制创建了自定义标签和相应的标签处理代码.具体使用方法见这篇.本文以m ...

  3. 手动添加SSH支持、使用c3p0

    之前做的笔记,现在整理一下:大家有耐心的跟着做就能成功: SSH(struts2.spring.hibernate) *  struts2      *  充当mvc的角色 *  hibernate ...

  4. Spring Boot 添加Shiro支持

    前言: Shiro是一个权限.会话管理的开源Java安全框架:Spring Boot集成Shiro后可以方便的使用Session: 工程概述: (工程结构图) 一.建立Spring Boot工程 参照 ...

  5. 使用Spring Boot开发Web项目(二)之添加HTTPS支持

    上篇博客使用Spring Boot开发Web项目我们简单介绍了使用如何使用Spring Boot创建一个使用了Thymeleaf模板引擎的Web项目,当然这还远远不够.今天我们再来看看如何给我们的We ...

  6. Spring Boot 添加JSP支持【转】

    Spring Boot 添加JSP支持 大体步骤: (1)            创建Maven web project: (2)            在pom.xml文件添加依赖: (3)     ...

  7. IDEA02 利用Maven创建Web项目、为Web应用添加Spring框架支持、bean的创建于获取、利用注解配置Bean、自动装配Bean、MVC配置

    1 环境版本说明 Jdk : 1.8 Maven : 3.5 IDEA : 专业版 2017.2 2 环境准备 2.1 Maven安装及其配置 2.2 Tomcat安装及其配置 3 详细步骤 3.1 ...

  8. step6----->往工程中添加spring boot项目------->修改pom.xml使得我的project是基于spring boot的,而非直接基于spring framework

    文章内容概述: spring项目组其实有多个projects,如spring IO platform用于管理external dependencies的版本,通过定义BOM(bill of mater ...

  9. eclipse 新建 maven 项目 添加 spring hibernate 的配置文件 详情

    主要配置文件 pom.xml 项目的maven 配置文件 管理项目所需 jar 依赖支持 web.xml 项目的总 配置文件  :添加 spring和hibernate 支持 applicationC ...

随机推荐

  1. ThinkPHP 5 中AJAX跨域请求头设置方法

    最近用thinkphp做项目,在测试环境时,存在接口的测试问题.在tp官网也没能找到相关的解决方法.自已看了一下源码,有如下的解决方案. 在项目目录下面,创建common/behavior/CronR ...

  2. Tp3.2 和 Tp5.0之间的区别

    5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别. URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正则路由定义,而是全部改为规则路由配合变量规 ...

  3. 关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案

    在win7,win10,vs2015,vs2017之间折腾了两天,死活就是调不出来Mysql数据源.真是活见鬼了. 直接说方案吧. 一,卸载你所安装过的mysql-connector-net.mysq ...

  4. kali git 环境配置

    kali 配置很简单,输入apt-get install git 我输入时返回了错误,执行命令dpkg --configure -a 就行了

  5. NOIP2016提高组初赛(1)

    一.选择题 6.后缀表达式,使用二叉树来求解,正常情况下的表达式a*(b+c)- d为中序遍历的二叉树. 即 若转换为后缀表达式(左右根)则为abc+*d- 14.代数字进去,多试几遍: 三.问题求解 ...

  6. 自己动手写http服务器——处理http连接(二)

    关于http报文格式请看这篇文章 //http_conn.h #ifndef HTTPCONNECTION_H #define HTTPCONNECTION_H #include <unistd ...

  7. TRITON恶意软件简单分析与防护方案

    一.攻击简介 2017年12月,安全研究人员发现了一款针对工控系统安全仪表系统(SIS)的恶意软件"TRITON",该软件以施耐德电气Triconex安全仪表控制系统为目标展开攻击 ...

  8. 卡尔曼滤波(Kalman Filter)

    一.引言 以下我们引用文献[1]中的一段话作为本文的開始: 想象你在黄昏时分看着一仅仅小鸟飞行穿过浓密的丛林.你仅仅能隐隐约约.断断续续地瞥见小鸟运动的闪现.你试图努力地猜測小鸟在哪里以及下一时刻它会 ...

  9. JavaScript必知的特性(继承)

    多数人在学习JavaScript的时候.都是做Web的时候.须要表单验证.或者是一些简单的DOM操作,如同我上篇所讲.处在一个"辅助"的地位. 处在"辅助"地位 ...

  10. 【Jquery系列】prop和attr区别

    问题描述 由于prop(property的缩写)和attr(attribute的缩写)翻译成汉语,均有“特性.属性”等意思的原因,导致大家容易混淆分不清,本篇文章将试图从英文含义,中文含义和Jquer ...