- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 sling:OsgiConfig 节点,它具有 String[] 类型的属性路径。我需要在 java 类中访问此属性。我想在 java 类中创建一个从 JSP 调用的方法。我正在使用 taglib 执行此操作。我知道我们可以使用下面的代码在 JSP 中实现相同的目的:
Configuration conf = sling.getService(org.osgi.service.cm.ConfigurationAdmin.class).getConfiguration("Name of the config");
String[] myProp = (String[]) conf.getProperties().get("propertyPath");
如何在 Java 类中执行此操作。
最佳答案
您没有说明您希望在哪种类型的 Java 类中获取配置。让我们看一下选项:
<强>1。任何 OSGi 服务(例如 servlet、过滤器或事件监听器)
将以下字段添加到 OSGi 组件类:
@Reference
private ConfigurationAdmin configurationAdmin;
并以与 JSP 中相同的方式使用它。
<强>2。 sling:OsgiConfig所属的OSGi服务
如果您添加了 sling:OsgiConfig
节点来配置您自己的 OSGi 组件,请遵循 Chris 的建议:
@Component
@Properties({
@Property(name = "propertyPath")
})
public class MyComponent {
private String[] propertyPath;
@Activate
public void activate(ComponentContext ctx) {
propertyPath = PropertiesUtil.toStringArray(context.getProperties().get("propertyPath"));
}
public void myMethod() {
// do something with the propertyPath field
}
}
activate 方法由 OSGi 自动调用。 ComponentContext
的限定名称是 org.osgi.service.component.ComponentContext
<强>3。普通旧 Java 对象
如果您的类不是 OSGi 组件,则您至少需要有权访问 SlingHttpServletRequest
对象。如果这样做,您可以从中提取 SlingScriptHelper
并使用它来获取 ConfigurationAdmin
:
SlingHttpServletRequest request = ...;
SlingBindings bindings = (SlingBindings) request.getAttribute(SlingBindings.class.getName());
SlingScriptHelper sling = bindings.getSling();
// here you can use your JSP code
关于java - CQ5 - 吊带 :OsgiConfig service in Java class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111314/
我最近进入了 AEM 和 sling (api) 的世界。我想做的是编写 Java 代码来获取我在 touch 中创建的新集合的 sling:members 及其属性 sling:resources
我正在研究一种在 CQ5 中使用 Mustache 模板化 View 引擎的方法,该引擎使用 Sling。如果有人已经有这方面的经验,我正在寻求一些建议。 我需要使用一种可以在需要时在前端和后端之间共
我创建了一个 sling:OsgiConfig 节点,它具有 String[] 类型的属性路径。我需要在 java 类中访问此属性。我想在 java 类中创建一个从 JSP 调用的方法。我正在使用 t
我是一名优秀的程序员,十分优秀!