- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如果我以错误的方式提出问题,我会先说出我想要实现的目标:
我在 CQ5 中有以下组件结构:/apps/TEST/components/DatabaseConnection(DatabaseConnection是一个组件名)/apps/TEST/components/DatabaseConnection/src/ServletDatabaseConnection(这是我的 serlvet,用于处理来自 TEST/components/DatabaseConnection 的 POST 请求。
在我的 servlet 中,sling.servlet.resourceTypes 设置为 TEST/components/DatabaseConnection)
因此,我设置了 sling.servlet.resourceTypes 的相对路径,serlvet 将在/apps/TEST/components/DatabaseConnection 和/libs/TEST/components/DatabaseConnection/下寻找 resourceType
但我希望能够将我的组件 DatabaseConnection 移动到任何其他文件夹,而不更改 servlet 和应用程序中的任何内容。但如果我现在这样做,我将不得不将 sling.servlet.resourceTypes 更改为新的 resourceType
考虑到 Sling 中的所有内容都是资源,而不是我的 servlet 也是资源,对吧?那么,或许可以相对于 servlet 的 resourceType 设置 sling.servlet.resourceTypes?
那么,我可以相对于该 servlet 的资源类型设置 sling.servlet.resourceTypes 吗?如果不是,是否有任何其他方法可以使我的组件“可移动”,这样我就不必更改 servlet 中的任何内容?
我发现这两个资源非常有用: http://www.pro-vision.de/content/medialib/pro-vision/production/adaptto/2012/adaptto2012-apache-sling-basic-concepts-rainer-bartl-peter-manne/_jcr_content/renditions/rendition.file/adaptto2012-apache-sling-basic-concepts-rainer-bartl-peter-mannel.pdf http://sling.apache.org/site/resources.html但是我还是想不出解决办法
最佳答案
7 个月过去了,在查看同事的代码后,我发现了如何实现我想要实现的目标:)
所以我想让组件连同它的 servlet 一起移动。
为此,我们不需要使用 resourceType,但需要使用 sling.servlet.paths。 http://sling.apache.org/documentation/the-sling-engine/servlets.html
要让它发挥作用,我们需要做三件事。
1) 在我们要发送给Servlet 的表单中,设置一些 Action 。示例:
<form name="name" id="id" action="/someaction/dothis" method="POST">
<button name="submit"> Submit </button>
</form>
2) 在 servlet 中设置 sling.servlet.paths。在我们的例子中:
@Component(immediate = true)
@Service(value=javax.servlet.Servlet.class)
@Properties(value = {
@Property(name="sling.servlet.methods", value={ "POST" }),
//
@Property(name="sling.servlet.paths", value={"/someaction/dothis"})
})
public class ServletEvaluation extends SlingAllMethodsServlet {
...
}
3) 在 OSGi 控制台/system/console/configMgr 中配置 Apache Sling Servlet/Resource Resolver:将 sling.servlet.path 添加到执行路径。在我们的例子中,将执行路径设置为/someaction
关于java - 如何将 Sling serlvet 中的 sling.servlet.resourceTypes 设置为相对于自身的路径(到 serlvet 的资源)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601292/
我是一名优秀的程序员,十分优秀!