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. 优秀it博客和文章

    优秀博客 综合 杨文博(供职于百度公司,任复合搜索部资深研发工程师,目前作为tech lead,负责垂直行业搜索后端架构研发.) 杨远骋 徐宥(Google 软件工程师. 这个中文博客是我的思考记录, ...

  2. (三)学习CSS之opacity 属性

    参考:http://www.w3school.com.cn/cssref/pr_opacity.asp opacity 属性设置元素的不透明级别. 所有浏览器都支持 opacity 属性. 注释:IE ...

  3. Ext入门学习系列(三)复杂自定义窗体

    通过前2节的学习,基本掌握了Ext的语法和运行原理,可以作出一些简单的应用.本节我们一起来完成复杂点的对话框操作,因为在实际项目中经常要用到确认对话框等多种操作,然后根据客户的选择作出不同的响应. 一 ...

  4. jdbc三种常见用法

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  5. Windows版词汇小助手V3.0发布了

    欢迎使用词汇小助手 作者:IT小小龙 电子邮箱:long_python@126.com 个人博客:http://blog.sina.com.cn/buduanqs 一款跨平台词汇查询记忆学习软件. 已 ...

  6. -Xms 和 -Xmx 不能设置的太大

    之前我一直有一个疑问,就是-Xms 和 -Xmx不是设置的越大越好吗?现在才明白怎么回事. 通过在命令行中执行 java 或者启动某种基于 Java 的中间件来运行 Java 应用程序时,Java 运 ...

  7. 深入浅出 JavaScript 对象 v0.5

    JavaScript 没有类的概念,因此它的对象与基于类的语言中的对象有所不同.笔者主要参考<JS 高级程序设计>.<JS 权威指南>和<JS 精粹> 本文由浅入深 ...

  8. rtems总结

    rtems 历史背景及现状 常用的api 和参数介绍 rtems_interrupt_enable rtems_interrupt_is_in_progress rtems_cache_flush_r ...

  9. POJ3468--A Simple Problem with Integers(Splay Tree)

    虽然有点难,但是这套题都挂了一个月了啊喂…… 网上模板好多……最后还是抄了kuangbin聚聚的,毕竟好多模板都是抄他的,比较习惯…… POJ 3468 题意:给n个数,两种操作,区间整体加一个数,或 ...

  10. Java 8 中 CAS 的增强

    几天前,我偶然地将之前写的用来测试AtomicInteger和synchronized的自增性能的代码跑了一下,意外地发现AtomicInteger的性能比synchronized更好了,经过一番原因 ...