谁能帮助我如何将 OpenCMS 与 Java Spring Web 应用程序集成。已经用谷歌搜索并浏览了很多网站,但没有用。所以,请帮助我。
2 回答
我认为将 SpringMVC 与 OpenCMS 集成有两种方法:
1) 两个独立的应用程序,一个 SpringMVC 应用程序和一个标准 OpenCMS 安装。SpringMVC 应用程序通过在 OpenCMS 中实现的 web 服务从 OpenCMS 获取内容。更多细节可以在这里找到:http: //lists.opencms.org/pipermail/opencms-dev/2012q3/037154.html。如果您正在开始一个新项目或扩展现有 SpringMVC 站点以添加内容管理,则此方法很好。它允许 SpringMVC 和内容管理之间的清晰分离。
2) 将 SpringMVC 与标准 OpenCMS 安装集成。这意味着在部署 opencms.war 后,修改 web.xml 以添加 SpringMVC 调度程序 servlet 和自定义视图解析器。控制器是 SpringMVC,视图是 OpenCMS 资源。如果您已经有一个现有的 OpenCMS 站点并希望扩展该站点以具有 MVC 功能,则此方法很好。有关此方法的详细说明,请查看http://blog.shinetech.com/2013/04/09/integrating-springmvc-with-opencms/
将 REST-API 添加到您的 Spring 应用程序并直接通过该 API 从 OpenCms jsps 获取数据。
这是一个如何使用 Jackson 获取数据以将 JSON 转换为对象的示例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="true"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
<%@ page import="org.codehaus.jackson.map.ObjectMapper" %>
<%@ page import="org.codehaus.jackson.type.TypeReference" %>
<%@ page import="java.util.*, java.net.*" %>
<%
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> result = mapper.readValue(new URL("https://server/api/rest/employeesOrderedByDepartment"), new TypeReference<List<Map<String, Object>>>() {} );
pageContext.setAttribute("result", result);
%>
<div class="span10">
<table class="table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Department</th>
<th>Function</th>
<th>Phone & Email</th>
</tr>
</thead>
<tbody id="staffbody">
<c:forEach items="${result}" var="person" varStatus="status">
<tr>
<td>${person.lastName} ${person.firstName}</td>
<td>${person.department.name}</td>
<td>${person.function}</td>
<td>${person.phone}<br /><a href='mailto:${person.email}'>${person.email}</a></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>