【发布时间】:2016-06-17 07:02:40
【问题描述】:
我一直在尝试将 Spring 框架集成到 AEM6/CQ5 中。
我正在学习本教程。 LINK
按照教程,我已经安装了 NEBA 包。 所有 NEBA 包都在 OSGi 控制台中处于活动状态。
然后我创建了自己的Maven CQ5项目,添加了Neba注解和Spring的依赖。我的项目也成功部署在了CQ5(bundle is active)。
我尝试使用 NEBA 的 ResourceModel 注释。但是这个模型并没有出现在 NEBA 的模型注册表中。 我将 ResourceModel 映射到我创建的内容组件“linkComponent”。
当用户将其拖放到任何 parsys 上时,资源节点具有属性 linkName 和 linkURL。
我尝试在 JSP 中访问这些值,但失败了。
请看下面的代码: 包 com.zensar.neba;
import org.apache.sling.api.resource.Resource;
import io.neba.api.annotations.Path;
import io.neba.api.annotations.ResourceModel;
@ResourceModel(types = "zensar-neba/components/content/linkComponent")
public class LinkComponent {
private String linkName;
private String linkURL;
public String getLinkName() {
return linkName;
}
public void setLinkName(String linkName) {
this.linkName = linkName;
}
public String getLinkURL() {
return linkURL;
}
public void setLinkURL(String linkURL) {
this.linkURL = linkURL;
}
}
请看下面linkComponent的JSP代码:
<%@include file="/libs/foundation/global.jsp"%>
<%@taglib prefix="neba" uri="http://neba.io/1.0"%>
<neba:defineObjects />
Link Component
<a href="${m.linkURL}"> Click Here ${m.linkName}</a>
然后我尝试使用 Spring 注释 创建一个 Controller,但我得到了 "Path not found" 我错过了什么。
请看下面的代码:
package com.zensar.neba;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class DemoController {
@RequestMapping("/echo/{param}")
@ResponseBody
public String echo(@PathVariable("param") String paramToEcho) {
return "Hello "+ paramToEcho;
}
}
我将控制器链接称为:http://localhost:4502/bin/mvc.do/echo/Oliver
重要提示: 我所有的捆绑包都处于活动状态
【问题讨论】:
标签: spring spring-mvc aem aem-6