我正在阅读 guides ,在第一个示例中,home.jsp
定义为:
<%@page session="false"%>
<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%>
<sling:defineObjects/>
<%@ page import="javax.jcr.Repository,
javax.jcr.Session,
javax.jcr.SimpleCredentials,
javax.jcr.Node,
java.net.URLEncoder,
java.util.List,
java.util.Iterator,
javax.jcr.Value,
javax.jcr.RepositoryException"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title><%= currentNode.getProperty("title").getString() %></title>
</head>
<body>
<div>
<h1><%= currentNode.getProperty("title").getString() %></h1>
<br>
<%= currentNode.getProperty("body").getString() %>
</div>
</body>
</html>
我以为<sling:defineObjects>
注入(inject)currentNode
,但根据tag docs ,事实并非如此。
那么注入(inject)它是什么呢?
最佳答案
你最初的想法是正确的,<sling:defineObjects>
实际上确实设置了该值。您链接的标记文档用于描述标记本身的属性(即您可以传递到标记中的值),而不是它设置的值。
如果您查看 DefineObjectsTag here 的代码,你可以看到currentNode
是添加到页面上下文的内容之一。
关于aem - currentNode 如何注入(inject)到 CQ5 JSP 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21717642/