我有一个JSP页面。我用来编写/显示它的技术如下:
页面出现:
<?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/
,它会报告:
%
字符上。虽然,它表示该列是3号。但是,查看该文档时,该列似乎位于第2列(行前面没有空格)。另一个验证器在列号方面报告相同的内容。HTML / JSP文档受XML约束,但它不是完全XML文档,我认为这就是验证器无法识别JSP语法的原因。
另一件事是,下一行发生了下一个错误:
<%
out.println("kkkkkkkkkkkkkkkkk");
%>
IDE再次抱怨,在此角色上%
:
事实上,当我在Glassfish app server
上执行页面时,它会正确显示内容。
即使我将应用服务器更改为Glassfish 4
(基于Java EE 7),也会发生同样的错误。
除此之外,如果我从模板生成JSP页面(在IDE中可用),则顶部的同一错误会重新出现。
如果我只键入HTML页面,则不会显示错误。由于某些原因,IDE不接受JSP语法。
我需要修复它,因为,只要发生此错误,我就无法使用内容助手。使用该页面非常有用。
任何想法,这可能是造成这种错误的原因吗?
答案 0 :(得分:0)
您要么从文件中删除x
标头,要么使用<?xml version="1.0" encoding="UTF-8"?>
而不是<jsp:scriptlet> ... your code ... </jsp:scriptlet>
语法。
我建议使用第一个选项,因为使用XML语法会带来一些其他限制(例如,您必须在条件等中使用<% ... your code ... %>
而不是&&
。)。
答案 1 :(得分:0)
好吧,我想出了解决方案。我用全新的安装替换了IDE,问题已经消失。
在以前的IDE中,唯一能解决的问题是,如果要在JSP页面中使用<jsp:scriplet>
,则需要在根目录上使用以下名称空间:xmlns:jsp="http://java.sun.com/JSP/Page"
。
前进......