正在解析 JSP 页面,错误通知格式错误

Parsing JSP page, an error notifies well-formedness violation

我有一个 JSP 页面。 write/display 我使用的技术如下:

页面如下:

 <?xml version="1.0" encoding="UTF-8"?>
<% @page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<body>
<h1> <center>506</center></h1>
<p/>
<h3>My fancy cat has been caught</h3>
<%
out.println("kkkkkkkkkkkkkkkkk");
%>

</body>
</html

错误发生在以下行:

<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

IDE 说:

如果我将文档传递给 XML 验证器:http://www.validome.org/xml/validate/,它会报告:

HTML/JSP 文档受到 XML 约束,但它不完全是 XML 文档,我认为这就是验证器无法识别 JSP 语法的原因.

另一件事是,下一个错误发生在以下行:

<%
out.println("kkkkkkkkkkkkkkkkk");
%>

IDE 再次抱怨,在这个字符上,%:

事实上,当我在 Glassfish app server 上执行页面时,它会正确显示内容。 即使我将应用程序服务器更改为 Glassfish 4(基于 Java EE 7),也会出现相同的错误。 除此之外,如果我从模板(可在 IDE 获得)生成 JSP 页面,顶部的相同错误会再次发生。

如果我只输入 HTML 页面,则不会出现错误。由于某些原因,IDE 不接受 JSP 语法。

我需要修复它,因为只要出现这个错误,我就无法使用内容助手。这对使用页面非常有帮助。

任何想法,这个错误的原因可能是什么?

您必须从文件中删除 <?xml version="1.0" encoding="UTF-8"?> header,或者使用 <jsp:scriptlet> ... your code ... </jsp:scriptlet> 而不是 <% ... your code ... %> 语法。

我会推荐第一个选项,因为使用 XML 语法会带来一些其他限制(例如,您必须在条件等中使用 &amp;&amp; 而不是 &&)。

嗯,我想出了解决办法。我用全新安装替换了 IDE,问题就消失了。 在之前的 IDE 中唯一对我有用的是,如果你想在 JSP 页面中使用 <jsp:scriplet>,你需要以下名称 - space在你的根上:xmlns:jsp="http://j‌​ava.sun.com/JSP/Page"‌.

前进...