JSP中XML声明前的空格

JSP中XML声明前的空格,jsp,xhtml,whitespace,w3c-validation,xml-declaration,Jsp,Xhtml,Whitespace,W3c Validation,Xml Declaration,我试图实现JSP输出的完整XHTML过渡验证,但遇到了一个障碍。标题的顶部如下所示: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <jsp:include> <js

我试图实现JSP输出的完整XHTML过渡验证,但遇到了一个障碍。标题的顶部如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<jsp:include>
  <jsp:attribute name="page"><owportal:page name="/style/portal/header.jsp" /></jsp:attribute>
</jsp:include>

它包含在如下语句中:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<jsp:include>
  <jsp:attribute name="page"><owportal:page name="/style/portal/header.jsp" /></jsp:attribute>
</jsp:include>

标记检查几个不同的路径,以便我们可以在需要时使用特定于项目的标题覆盖它。问题是在使用owportal标记库之前需要先声明它,在XML声明之前插入一个空行,并导致验证警告

我曾经尝试过使用jsp:output来实现,但运气不太好。有人能告诉我我在这条路上走对了吗

更新:

目前我正在尝试这样的事情

<%@ taglib uri="/WEB-INF/yadda/yadda" prefix="yadda" %>

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns="http://www.w3.org/1999/xhtml" version="2.0">
  <jsp:output omit-xml-declaration="false" doctype-root-element="html"
              doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
              doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
</jsp:root>

<html>...

...

我在这一行得到一个错误“无效的标准操作”。这不是最有用的错误消息。听起来好像我把标签用错了。我正在运行Tomcat6,所以JSP版本应该没有问题。有人能看出我做错了什么吗?是否意味着结束?

如果我理解正确,那么您将尝试在jsp的最顶端包含这个jsp:include,但是,在这个过程中,您将导致jsp在XML序言之前的顶部输出一些空格

在这种情况下,我只是求助于确保JSP没有空白:

<jsp:include><jsp:attribute name="page"><owportal:page name="/style/portal/header.jsp" /></jsp:attribute></jsp:include>[your content continues here, not on next line!]...
[您的内容在此处继续,而不是在下一行!]。。。
但我认为您是在问一个不同的问题,即如何告诉JSP输出XML声明。要做到这一点,您需要从以下内容开始(假设您在这里使用的是最新的JSP规范,如2.1)


...

这是处理从JSP(X)文件输出XML的更正确的方法——更明确。

嘿,谢谢你的回答。是的,我更想的是你列出的第二个解决方案。我尝试过使用jsp:root,但遇到了一些麻烦。我用更多的信息更新了原来的帖子。是的,我发现可能有两个问题:XML文档只能有一个根元素;给你两个。真的进去了。另外,看起来您正在使用旧的1.x语法来声明taglib。我认为有一些等价物,你可能想要或需要使用。我相信这也包括在内。