ref from:http://blogs.indrajitpingale.com/?p=8

http://blog.shinetech.com/2013/04/09/integrating-springmvc-with-opencms/

It is assumed that you have successfully deploted OpenCMS 8.x on either Tomcat or JBoss (How to deploy OpenCMS on JBoss?). Also, it is assumed that your are hands-on on Spring MVC.

So there are 6 part of Spring MVC application.

  1. classes (Controllers and other)
  2. JSP files
  3. Assets (image, js, css and other files)
  4. Spring taglibs (spring-form.tld, spring.tld) *** if any ***
  5. Servlet configuration files (xxxx-servlet.xml)
  6. libs (your application might need more or less)
    1. aopalliance-1.0.jar
    2. ehcache-1.2.3.jar
    3. hibernate-3.2.3.ga.jar
    4. log4j-1.2.17.jar
    5. opencmsspring_c3p0-0.9.1-pre5a.jar
    6. opencmsspring_hibernate3.2.jar
    7. rapid-web.jar
    8. spring-aop-3.0.5.RELEASE.jar
    9. spring-asm-3.0.5.RELEASE.jar
    10. spring-beans-3.0.5.RELEASE.jar
    11. spring-context-3.0.5.RELEASE.jar
    12. spring-context-support-3.0.5.RELEASE.jar
    13. spring-core-3.0.5.RELEASE.jar
    14. spring-expression-3.0.5.RELEASE.jar
    15. spring-jdbc-3.0.5.RELEASE.jar
    16. spring-orm-3.2.3.RELEASE.jar
    17. spring-tx-3.0.5.RELEASE.jar
    18. spring-web-3.0.5.RELEASE.jar
    19. spring-webmvc-3.0.5.RELEASE.jar
  7. web.xml

Steps to deploy Spring MVC application in openCMS.

 
  1. Copy all libs to “opencms.war\WEB-INF\lib” folder.
  2. Copy *.tld, xxxx-servlet.xml, xxxx-service.xml to “opencms.war\WEB-INF” folder.
  3. Create .jar of your classes (only classes nothing else) and copy it to “opencms.war\WEB-INF\lib” folder.
  4. Now the tricky part is web.xml, don’t copy it to ”opencms.war\WEB-INF” otherwise it will overwrite openCMS’s web.xml. Follow the following steps.
    1. Open openCMS’s web.xml (opencms.war\WEB-INF\web.xml) for edit.
    2. 1st copy following
      <!-- Begin: OpenCmsSpring Integration -->   
      <context-param
         <param-name>contextConfigLocation</param-name
         <param-value>/WEB-INF/OpenCmsSpring-service.xml</param-value
      </context-param>  
      <filter
         <filter-name>CharacterEncoding</filter-name
         <filter-class
              org.springframework.web.filter.CharacterEncodingFilter 
         </filter-class
         <init-param
              <param-name>encoding</param-name
              <param-value>UTF-8</param-value
         </init-param
         <init-param
              <param-name>forceEncoding</param-name
              <param-value>true</param-value
         </init-param
      </filter>   
      <!-- End: OpenCmsSpring Integration -->

      under following

      <context-param
        <param-name>DefaultWebApplication</param-name
        <param-value>ROOT</param-value
      </context-param>
    3. 2nd copy following 
      <!-- Begin: OpenCmsSpring Integration -->   
      <listener
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class
      </listener>    
      <servlet
          <servlet-name>OpenCmsSpring</servlet-name
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class
          <load-on-startup>1</load-on-startup
      </servlet
      <!-- End: OpenCmsSpring Integration -->

      under following

      <listener
          <listener-class>org.opencms.main.OpenCmsListener</listener-class
      </listener>
    4. 3rd copy following to redirect spring request to RewriteFilter.
      <!-- Begin: OpenCmsSpring Integration --> 
      <servlet-mapping
          <servlet-name>OpenCmsSpring</servlet-name
          <url-pattern>*.htm</url-pattern
      </servlet-mapping
      <filter
          <filter-name>RewriteFilter</filter-name
          <filter-class>com.ipingale.filter.RewriteFilter</filter-class
      </filter
      <filter-mapping
          <filter-name>RewriteFilter</filter-name
          <url-pattern>/*</url-pattern
      </filter-mapping
      <filter-mapping
          <filter-name>CharacterEncoding</filter-name
          <url-pattern>/*</url-pattern
      </filter-mapping>   
      <!-- End: OpenCmsSpring Integration -->

      under following

      <servlet-mapping
          <servlet-name>OpenCmsWebDavServlet</servlet-name
          <url-pattern>/webdav/*</url-pattern
      </servlet-mapping>
    5. 4th and last copy following to add support to spring Taglibs
      <!-- Begin: Spring Integration --> 
      <taglib
          <taglib-uri>/spring</taglib-uri
          <taglib-location>/WEB-INF/spring.tld</taglib-location
      </taglib
      <taglib
          <taglib-uri>/form</taglib-uri
          <taglib-location>/WEB-INF/spring-form.tld</taglib-location
      </taglib>  
      <!-- End: Spring Integration -->

      under following

      <taglib
          <taglib-uri>http://www.opencms.org/taglib/cms</taglib-uri
          <taglib-location>/WEB-INF/opencms.tld</taglib-location
      </taglib>
  5. Now start Tomcat/JBoss.
  6. Open openCMS dashboard (http://localhost:8080/opencms/opencms/system/login/).
  7. Create any site (folder) inside site/default for e.g. “demo1″.
  8. Upload all JSP files under this folder (site/default/demo1).
  9. Now about Assets. Where to put those in openCMS?
    1. For that create Module from Administrator view (with name “com.ipingale.demo.module”).
    2. Add resource folder to that module.
    3. Copy all Assets under that folder.
  10. Touch ups.
    1. Assets links, e.g. css, js, images, etc. referred in JSP. You need to modify them as follows.
      Before:

      <link href="css/style.css" rel="stylesheet" type="text/css" />

      After:

      <link href="<cms:link>/system/modules/com.ipingale.demo.module/resources/css/style.css</cms:link>" rel="stylesheet" type="text/css" />
    2. To support “” you need to add following on the top of each JSP page.
      <%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
    3. Rename all .jsp files to .spg (or anything other than known mime types).

That’s it you are ready now.

Click on your start page (index.spg) and here you go.

You can download working example from below location.

This entry was posted in OpenCMSSpring-MVC on February 4, 2014.

OpenCMS integration with Spring MVC--reference的更多相关文章

  1. Spring Security(三十六):12. Spring MVC Test Integration

    Spring Security provides comprehensive integration with Spring MVC Test Spring Security提供与Spring MVC ...

  2. 使用MockMvc测试Spring mvc Controller

    概述   对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便 ...

  3. Spring MVC Hello World Example(转)

    Spring 3 You may interest at this Spring 3 MVC hello world example. In Spring MVC web application, i ...

  4. Spring MVC Integration,Spring Security

     http://docs.spring.io/spring-security/site/docs/4.2.0.RELEASE/reference/htmlsingle/#authorize-reque ...

  5. Spring MVC Hibernate MySQL Integration(集成) CRUD Example Tutorial【摘】

    Spring MVC Hibernate MySQL Integration(集成) CRUD Example Tutorial We learned how to integrate Spring ...

  6. 玩转单元测试之Testing Spring MVC Controllers

    玩转单元测试之 Testing Spring MVC Controllers 转载注明出处:http://www.cnblogs.com/wade-xu/p/4311657.html The Spri ...

  7. spring mvc 介绍

    Spring MVC Tutorial tag. * * If you do not want to deal with the intricities of the noscript * secti ...

  8. Spring mvc 4系列教程(一)

    一.Spring框架概览 Spring框架是一种轻量级.一站式解决企业级应用的解决方案.不仅如此,Spring的模块化的特点,可以使你只引用所需要的部分,而无需引用全部.你可以使用控制反转容器(IoC ...

  9. Spring Boot Reference Guide

    Spring Boot Reference Guide Authors Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch,  ...

随机推荐

  1. jQuery基础知识— 获得内容和属性

    jQuery拥有可操作HTML元素和属性的方法.   获得内容: text()--设置或返回所选元素的文本内容 html()--设置或返回所选元素的内容(包括HTML标记) val()--设置或返回表 ...

  2. vtiger 支持 物业收费功能 微信收费

    谁要?需要什么功能? 直接在下面留言,博主会整理大家的需求,形成产品,发出来.

  3. 新手学习数据库(一)用Powerdesigner设计数据库

    说明: 一.学会用开发语言进行数据库编程,其关键是在于学会sql语言,开发语言只不过给程序员提供了一个操作数据库的接口罢了. 二. 本人也是初学者,采用的数据库设计软件是powerdesigner.利 ...

  4. MVC的EF编辑,不用查询直接修改

    EF中会为每个 管理的 实体对象 创建一个代理包装类对象,其中会跟踪 实体对象 的状态和每个属性的状态: 一.通常使用EF更新的方式,先查询出要修改的数据,然后再修改新的值:实体对象被修改的属性 在 ...

  5. Timus 1746 Hyperrook

    题意:在一个n维坐标系中,坐标的范围是0到m - 1,如果两个点坐标只有一个维度的坐标不同则可以相互移动,给出p个点,问任意两个点之间路径为d的个数是多少,答案与p取模. 解法:只需要考虑两个点之间不 ...

  6. 无法找到.exe的调试信息

    原文:无法找到.exe的调试信息 前天重装了电脑,并配置了Visual Studio2005的VC正则库,boost/regex,运行速度马上快了三倍吧,到底是怎么快的,我还真说不清楚,因为电脑这玩意 ...

  7. java jvm学习笔记五(实践自己写的类装载器)

     欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和 ...

  8. e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (二) 图片验证码的识别

    上一篇文章讲了“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 一 京东 商品搜索 ...

  9. 用JSP做后台管理系统

    添加新闻 /**  * 获取从页面读取的数据  * @param request  * @return 单个新闻信息  * @throws UnsupportedEncodingException   ...

  10. 【译】 AWK教程指南 8处理多行数据

    awk 每次从数据文件中只读取一行数据进行处理.awk是依照其内置变量 RS(Record Separator) 的定义将文件中的数据分隔成一行一行的Record.RS 的默认值是 "\n& ...