JSP 内容一目了然
JSP content in sightly
一个JSP文件,就像HTML文件一样,可以直接在url中请求。但是,JSP 文件会在运行时编译,而 HTML 文件不会(尽管它们的请求方式相同)。即使是没有动态内容的 JSP 文件也会在运行时编译,因为它们会在内部转换为 servlet。我们可以在 JSP 文件中包含一个 HTML 文件,但反过来不行。向用户提供资源涉及很多组件(Servlets
、Request
、Response
、Webserver
等)。
哪个组件通过查看扩展名来决定文件是否需要编译?
Sightly 是一个 HTML 文件,可以在其主体中包含 JSP 代码,理想情况下不应编译但会编译。怎么样?
不完全确定我理解你的问题是什么,但这是我的尝试
如果没有为路径定义的 Servlet,那么 Apache Sling 将根据 http 请求之类的东西找出使用哪个 "scripting engine"方法和扩展名(.jsp 与 .html)。 See here。之后由引擎(例如 JSP 引擎或 Sightly 引擎)决定如何处理请求。
如果您将 JSP 代码写入一个可见的文件中,它只会在响应中打印出来。我已经在本地主机上使用 Sightly Repl 对此进行了测试。
如此美观的文件 foo.html
包含内容
<c:set var="foo" value="bar"/>
<div>${foo}</div>
结果如下所示。
<c:set var="foo" value="bar"/>
<div></div>
您可以看到,Sightly 不会删除或评估 jsp 标签。 ${foo}
会消失,因为范围内没有名为 foo 的 Sightly 变量。
另一个注意事项:您实际上可以包含来自 Sightly 的 JSP 文件。
这是来自 Adobe's docs 的示例:
<section data-sly-include="path/to/template.jsp"></section>
Sightly 只能作为组件的一部分包含在内。尽管 sightly 是 HTML5(以 .html 结尾),但 sightly 是由 Sightly engine
编译的。
所以有可能有一个包含 JSP 文件的 sightly 文件。
一个JSP文件,就像HTML文件一样,可以直接在url中请求。但是,JSP 文件会在运行时编译,而 HTML 文件不会(尽管它们的请求方式相同)。即使是没有动态内容的 JSP 文件也会在运行时编译,因为它们会在内部转换为 servlet。我们可以在 JSP 文件中包含一个 HTML 文件,但反过来不行。向用户提供资源涉及很多组件(Servlets
、Request
、Response
、Webserver
等)。
哪个组件通过查看扩展名来决定文件是否需要编译?
Sightly 是一个 HTML 文件,可以在其主体中包含 JSP 代码,理想情况下不应编译但会编译。怎么样?
不完全确定我理解你的问题是什么,但这是我的尝试
如果没有为路径定义的 Servlet,那么 Apache Sling 将根据 http 请求之类的东西找出使用哪个 "scripting engine"方法和扩展名(.jsp 与 .html)。 See here。之后由引擎(例如 JSP 引擎或 Sightly 引擎)决定如何处理请求。
如果您将 JSP 代码写入一个可见的文件中,它只会在响应中打印出来。我已经在本地主机上使用 Sightly Repl 对此进行了测试。
如此美观的文件 foo.html
包含内容
<c:set var="foo" value="bar"/>
<div>${foo}</div>
结果如下所示。
<c:set var="foo" value="bar"/>
<div></div>
您可以看到,Sightly 不会删除或评估 jsp 标签。 ${foo}
会消失,因为范围内没有名为 foo 的 Sightly 变量。
另一个注意事项:您实际上可以包含来自 Sightly 的 JSP 文件。
这是来自 Adobe's docs 的示例:
<section data-sly-include="path/to/template.jsp"></section>
Sightly 只能作为组件的一部分包含在内。尽管 sightly 是 HTML5(以 .html 结尾),但 sightly 是由 Sightly engine
编译的。
所以有可能有一个包含 JSP 文件的 sightly 文件。