JSP 未在 Magnolia 5.2.5 中呈现

Posted

技术标签:

【中文标题】JSP 未在 Magnolia 5.2.5 中呈现【英文标题】:JSP not rendering in Magnolia 5.2.5 【发布时间】:2014-09-18 10:45:14 【问题描述】:

我正在尝试使用 Vaadin 7' BrowserFrame 将我的 jsp 脚本“test.jsp”嵌入到 Magnolia 应用程序的 iframe 中:

browser = new BrowserFrame("", new ExternalResource("../VAADIN/test.jsp"));

文件'test.jsp'看起来像:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>My JSP page.</title>
</head>
<body>

Current time: <%= new java.util.Date() %>

</body>
</html>

输出是:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> Current time: <%= new java.util.Date() %> 

所以你可以看到它根本没有渲染。

我使用的是 Magnolia 5.2.5,它在 Tomcat 7.0.47 上运行。

Tomcat web.xml jsp 配置:

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jsp</url-pattern>
    <url-pattern>*.jspx</url-pattern>
</servlet-mapping>

magnoliaAuthor web.xml jsp 配置:

<jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>

而且我相信我的主题与this 相关,但作者没有指定详细的解决方案。

有人知道我的问题的解决方案吗?提前致谢。

【问题讨论】:

【参考方案1】:

您的问题与您链接的问题无关。有人试图构建模板以在 Magnolia 支持的 Web 上呈现,您正在构建要在 Magnolia 的 UI 中呈现的资源。通过在模板配置中指定 renderType=jsp 解决了他的问题。您似乎甚至没有模板,只有 JSP。尝试直接呈现该 JSP。渲染了吗?我不这么认为,我认为你会得到纯 JSP 内容。如果我没记错的话,你的 JSP 位于 JSP 编译器不期望它的地方,因此它没有被编译。至少,您需要在 Magnolia 的过滤器链中为此页面配置绕过,以确保 Magnolia 不会尝试呈现您的 JSP 本身。

HTH, 一月

【讨论】:

【参考方案2】:

不要更改 web.xml 尝试将jsp文件添加到/docroot 并调用http://host/docroot/test.jsp

【讨论】:

以上是关于JSP 未在 Magnolia 5.2.5 中呈现的主要内容,如果未能解决你的问题,请参考以下文章

JSP 文件未在 Spring Boot Web 应用程序中呈现

Magnolia CkEditor InternalLink 未在工具栏中列出

Magnolia 未在 Vanilla Tomcat 服务器上启动 [重复]

将 Magnolia 内容嵌入现有的 Web 应用程序

在 Magnolia CMS 中以编程方式呈现模板区域

在 magnolia 的页面详细信息视图中检测 iframe 的变化