Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AdobeCQ-从.jsp节点获取HTML内容_Html_Jsp_Adobe_Aem - Fatal编程技术网

AdobeCQ-从.jsp节点获取HTML内容

AdobeCQ-从.jsp节点获取HTML内容,html,jsp,adobe,aem,Html,Jsp,Adobe,Aem,将.jsp文件放在/components 路径看起来像:http://localhost:4502/apps/project-name/components/my component/one.jsp 是否可以通过url获取此one.jsp的HTML内容而不创建内容节点? 类似于: http://localhost:4502/apps/project-name/components/my-component/one.HTML 进一步呈现需要.html内容。您的问题有点模糊,但据我所知,您希望检索

.jsp
文件放在
/components

路径看起来像:
http://localhost:4502/apps/project-name/components/my component/one.jsp

是否可以通过url获取此
one.jsp的
HTML
内容而不创建内容节点?

类似于:

http://localhost:4502/apps/project-name/components/my-component/one.HTML

进一步呈现需要
.html
内容。

您的问题有点模糊,但据我所知,您希望检索整个页面的html,这可以通过使用java.net.URL实用程序从URL读取输入流来完成


您也可以在其他jsp中放置iframe来获取内容。

您可以始终使用传统的.html文件而不是.jsp,但是(可能很明显)您将失去jsp提供的所有服务器端功能


还值得注意的是,出于安全原因,/apps通常被拒绝匿名访问,因此在具有OOTB权限的发布实例上无法访问此.html文件。

据我所知,您无法通过提供JSP文件的路径直接从JSP获取html内容。它按原样显示JSP中的内容,而无需编译

一种可能的方法是创建一个nt:unstructured节点,将sling:resourceType属性设置为jsp的路径(如下所示)

您可以提供测试节点的路径,以获取jsp呈现的html

/apps/geometrixx/components/title/test

我只想将express.jsp作为纯.html,而不在内容层次结构下创建节点,以便访问类似于:/one.html或其他类似方式的.jsp。没有后端,只需通过url获取html内容,问题是应该使用什么url。谢谢您的帮助。正如我所说的,您可以使用URL实用程序按原样读取jsp的内容。同样的。您将在此中提供的url可以来自。请参阅Externalizer publishLink//authorLink//absoluteLink的Api方法。Externalizer可以用于为各种环境配置链接。我的意思是,我可以获得如下.html视图:
/http://localhost:4502/apps/project-name/components/my component/one.jsp/jcr:content/jcr:data
或其他方式?您好,谢谢您的回答,这种方法会给我造成错误:Guice注入器名称不可用。@sergionni您使用的是切片框架吗?上面的示例在我的服务器中工作(没有切片)。你能提供更多关于错误的信息以便我们能找出它吗?是的,Sling。错误看起来像:
由以下原因引起:java.lang.IllegalStateException:Guice注入器名称在com.cognifide.slice.api.tag.SliceTagUtils.getFromCurrentPath(SliceTagUtils.java:73)不可用
…看起来像方法
SliceTagUtils中的
appName
参数。getFromCurrentPath
为空。此参数是什么意思?@sergionni请检查此链接。他们正在尝试获取中指定的appName属性,如果未指定,它将检查resource.IIUC中的“injectorName”属性“需要进一步呈现.html内容”表示JSP生成的html将包含在另一个页面中。在这种情况下,最好使用包含资源呈现的JSP标记。当然,这将以一个Sling资源(内容或其他节点)为目标。您也可以像往常一样使用@include.Hi Bertrand将JSP包含在其他JSP中,我明白您的意思。还有一个更详细的说明:这个.html应该在点击链接时被调用(比如
),我的意思是它将在其他jsp页面中引用jsp的html内容。好的,所以对于这一点,建议的方法是创建一个内容节点,只要确保正确处理访问控制。一般来说,您不希望用户阅读JSP,因此建议将实际内容放在/apps下以外的其他位置。
/apps/geometrixx/components/title/test