我有一個JSP頁面。我用來寫這些技術/顯示它有以下幾種:解析JSP頁面,錯誤通知格式違規
- Glassfish的3(基於Java EE 6)
- 的Eclipse EE開普勒IDE
- JDK V7
這裏談到的頁:
<?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文檔是不能很好地形成,由於分析錯誤
- 根元素之前的文檔中的標記必須很好形成
如果我將文檔傳遞給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),也會發生同樣的錯誤。 除此之外,如果我從模板(在IDE中可用)生成JSP頁面,則會重新出現頂部的相同錯誤。
如果我只鍵入HTML頁面,則錯誤不會顯示。由於某些原因,IDE不接受JSP語法。
我需要修復它,因爲只要發生此錯誤,我不能使用內容助理。使用該頁面非常有幫助。
任何想法,可能是這個錯誤的原因是什麼?
所以,是的,我刪除了XML聲明行。然而,問題仍然存在。如果我通過'環繞代碼,我得到這個結果:'元素「jsp:scriplet」的前綴「jsp」未被綁定。如果我從模板生成(html)的JSP,沒有XML聲明,我仍然得到相同的錯誤。這可能是Eclipse上一些(錯誤)配置的原因嗎? –
ucas
如果它的本意是一個JSP,那麼你的根元素也需要'xmlns:jsp =「http://java.sun.com/JSP/Page」'。所有前綴都需要映射到名稱空間。 – nitind
好的,名稱空間的添加解決了一個子問題。問題是,在JSP頁面的最頂端有以下定義行:'<%@ page language =「java」contentType =「text/html; charset = ISO-8859-1」pageEncoding =「ISO- 8859-1「%>」,形成的問題依然存在。我也想用'<%'來使用scriplets等等。此時IDE會引發錯誤。難道你不這麼認爲,即使在模板中生成了JSP(HTML)文檔後,它會立即發生錯誤,這是不對的? – ucas