繁体   English   中英

Sling-通过pageContext访问属性

[英]Sling - accessing properties via pageContext

据我了解,pageContext可以访问许多方法,例如getPage,getRequest等。因此,与使用页面上下文相反,直接访问所需的内容不是更好吗? 问题是我不知道你会怎么做。 所以说我有这个:

public void setProperties(PageContext context){
 ValueMap properties = (ValueMap) context.getAttribute("properties");
 Node currentNode = (Node) context.getAttribute("currentNode");

 pageHeader = properties.get("pageHeader", "")
}

很好 您将如何设置自己特别需要的? 我有这个,但似乎没有用。 我只是得到一个**,请检查声明的类型是否正确以及该方法是否存在。

Resource resource = requestResolver.getResource("/content/my/resource");   

public void setProperties(){

ValueMap properties = (ValueMap) resource.getAttribute("properties");
Node currentNode = (Node) resource.getAttribute("currentNode");

}

检索ValueMap的关键是使用适配器框架并适应适当的资源或节点。 两者都实现了Adaptable接口,使您可以为Resource修改许多目标类型,例如Node,ValueMap等。 http://sling.apache.org/apidocs/sling6/org/apache/sling/api/adapter/Adaptable.html http://sling.apache.org/documentation/the-sling-engine/adapters.html

下面的示例演示如何检索只读的ValueMap

ValueMap properties = resource.adaptTo(ValueMap.class);
String propertyValue = values.get("propertyName", String.class); 

如果需要修改ValueMap的内容,请使用PersistableValueMap。 http://sling.apache.org/apidocs/sling6/org/apache/sling/api/resource/PersistableValueMap.html

PersistableValueMap valueMap = resource.adaptTo(PersistableValueMap.class);
valueMap.put(key,value);
valueMap.save(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM