JSP无法在Tomcat中正确呈现

时间:2010-12-10 19:39:49

标签: java jsp tomcat magnolia

我在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>

,最终输出如下:

  

&lt;%@ page   的contentType = “text / html的;字符集= UTF-8”   language =“java”%&gt; &lt;%@ taglib   uri =“cms-taglib”prefix =“cms”%&gt;你好   玉兰世界!

     

Hello Magnolia World!当前时间:   &lt;%= new java.util.Date()%&gt; &lt;% - JSP   评论 - %&gt;

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

我正在使用Tomcat附带的CMS,但来自发行版的JSP模板示例似乎很好。我想我上面写的代码有点不对。

更新:我已修复了日期表达式和注释的已关闭标记。但是,页面指令未被解析。

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

java scriplet <%= new java.util.Date() %也未正确关闭(<%= new java.util.Date() %>)加上gigadot声明,<%-- JSP Comment --%未正确关闭<%-- JSP Comment --%>

此致

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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

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