nic*_*las 1 sling aem sling-models
给出了 2 个吊带模型,我想注射其中一个。这可以通过注释实现吗?还是我需要创建一个 PostContruct 方法作为解决方法?
例子:
型号A
@Model(adaptables = Resource.class)
public class ModelA {
@ValueMapValue(name = "jcr:title", injectionStrategy = InjectionStrategy.OPTIONAL)
private String title;
@Inject // Not working!
private ModelB modelB;
}
Run Code Online (Sandbox Code Playgroud)
B型
@Model(adaptables = Resource.class)
public class ModelB {
@ValueMapValue(injectionStrategy = InjectionStrategy.OPTIONAL)
private String text;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
从 Sling Models 1.1.0 版本开始,您可以使用@Self注释来注入模型,这些模型可以根据当前的适应性进行调整。在这种情况下,Resource来自ModelA.
注入自适应对象本身(如果字段的类匹配或者是超类型)。如果存在 @Self 注释,则会尝试使适应性适应字段类型。
@Model(adaptables = Resource.class)
public class ModelA {
@ValueMapValue(name = "jcr:title", injectionStrategy = InjectionStrategy.OPTIONAL)
private String title;
@Inject // This should works
@Self
private ModelB modelB;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8179 次 |
| 最近记录: |