任何人都可以帮助我如何将OpenCMS与Java Spring Web应用程序集成。已经谷歌搜索并通过很多网站但没有用。所以,请帮助我。
答案 0 :(得分:3)
我认为将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/
答案 1 :(得分:0)
向Spring应用程序添加REST-API,并直接通过该API从OpenCms jsps获取数据。
这里有一个如何使用Jackson获取数据以将JSON转换为Objects的示例:
<%@ 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>