2

我有一个在 Tomcat 中运行的 JSP 页面没有正确呈现。这是 helloworld.jsp 的样子:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="cms-taglib" prefix="cms" %>
<html>
  <head>
    <title>${content.title}</title>
  </head>
  <body>
    <cms:mainBar
       dialog="my-page-properties-dialog"
       label="Page Properties"
       adminButtonVisible="true"/>
    <h1>${content.title}</h1>
    <p>Hello Magnolia World !</p>

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

  </body>
</html>

最终输出是这样的:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="cms-taglib" prefix="cms" %> 你好 Magnolia World!

你好玉兰世界!当前时间:<%= new java.util.Date() %> <%-- JSP Comment --%>

简而言之,似乎只有表达式 ${content.title} 被评估和渲染得很好,但页面指令、其他 JSP 表达式和 JSP 注释等其他所有内容都没有。

我正在使用 Tomcat 附带的 CMS,但来自发行版的 JSP 模板样本看起来不错。我想我上面写的代码有问题。

更新:我已经修复了日期表达式和评论的封闭标签。但是,页面指令没有被解析。

4

4 回答 4

1

java scriplet<%= new java.util.Date() %也没有正确关闭(<%= new java.util.Date() %>)加上像 gigadot 所说的那样,<%-- JSP Comment --%没有正确关闭<%-- JSP Comment --%>

问候,

于 2010-12-10T20:04:26.333 回答
1

我发现了问题。这是我的一个愚蠢的错误。即使我修正了正确的 JSP 语法并拥有了 jsp 扩展,我仍需要告诉 CMS 引擎将该模板显式呈现为 JSP。不过,感谢大家发现我的语法错误。我想在使用其他框架时需要注意这一点。

于 2010-12-10T21:03:30.997 回答
1

我认为您的 jsp 评论有问题。

它应该如下所示。你不是用IDE来开发你的jsp吗?当您有语法错误时,您的 IDE 应该会告诉您。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="cms-taglib" prefix="cms" %>
<html>
  <head>
    <title>${content.title}</title>
  </head>
  <body>
    <cms:mainBar
       dialog="my-page-properties-dialog"
       label="Page Properties"
       adminButtonVisible="true"/>
    <h1>${content.title}</h1>
    <p>Hello Magnolia World !</p>

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

  </body>
</html>
于 2010-12-10T19:58:33.280 回答
0

通常我们看到代码,当解析器无法识别文件时显示在浏览器中,即文件扩展名未添加到解析器列表中。

通常tomcat在/conf文件夹下的web.xml中有这个配置。

此外,如果您使用某些文本编辑器进行编码,请确保您仅使用 .jsp 扩展名而不是 .jsp.txt 存储,这是不小心的!

于 2010-12-10T20:36:54.990 回答