我在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模板示例似乎很好。我想我上面写的代码有点不对。
更新:我已修复了日期表达式和注释的已关闭标记。但是,页面指令未被解析。
答案 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,不小心!