Sling Model与JCR Node的关系
Component下的name属性的./name代表什么含义?
为什么偏偏是./name呢?表示当前目录下的name。
其实当你写完组件以后,组件会被一个页面所引用。
你到content目录下找到那个页面。实则所有组件内的数据都会在该页面上,我们也应该去页面上取内容。
一般是不会跑到组件里去取内容的。
所以./代表的是那个页面的目录。
理解注解
@Self
private Resource currentResource;
@ScriptVariable
private Page currentPage;
debug一下,如果我没记错的话
- Resource资源路径是指Component的路径
- Page路径则是指页面路径
怎么知道谁引用了他们?
起初我一直在想,我写个Resource他怎么知道我想找那个路径下的内容呢?在Sling Model里指示?
原来!
哪个组件的页面调用了他们,他们就指向了哪个页面!
真,恍然大悟。
你在页面上用HTL写data-sly-use....
理解注解II
@ValueMapValue
private String fileReference;
@SlingObject
private ResourceResolver resourceResolver;
- @Inject包含了很多内容,所以单单是找值的话,用@ValueMapValue即可。所以这些值也都是去页面上取的,而不是组件上。就是根据./name去页面上找
- ResourceResolver有个getResource方法,可以通过指定路径去查找对应的结点
- 拿到一个Resource后可以.getValueMap().get()拿到对应的值
另学习了几个常用IDE的快捷方式
ctrl + U //debug模式下查看变量
ctrl + H //全文件搜索关键字
shift + shift //搜索文件名
知识离开了脑子,就只是一堆文字

浙公网安备 33010602011771号