Пробелы перед объявлением XML из JSP - PullRequest
0 голосов
/ 29 мая 2009

Я пытаюсь добиться полной XHTML-проверки переходного процесса моего вывода JSP, но я наткнулся на препятствие. Верхняя часть заголовка выглядит так:

<?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>

Тег проверяет несколько разных путей, чтобы мы могли переопределить его заголовком, специфичным для проекта, если это будет необходимо. Проблема с этим заключается в том, что taglib owportal необходимо объявить, прежде чем его можно будет использовать, вставив пустую строку перед объявлением XML и вызвав предупреждение о проверке.

Я попытался с помощью jsp: output для создать объявление XML без особой удачи. Кто-нибудь может дать мне знать, если я на правильном пути?

Обновление:

В настоящее время я пытаюсь что-то вроде этого

<%@ 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>...

И я получаю сообщение об ошибке «Недопустимое стандартное действие» в строке . Не самое полезное сообщение об ошибке. Похоже, я использую тег неправильно как-то, возможно. Я использую Tomcat 6, так что это не должно быть проблемой с версией JSP. Кто-нибудь может увидеть, что я делаю не так? предназначен для обтекания ?

1 Ответ

1 голос
/ 02 июня 2009

Если я вас правильно понимаю, то вы пытаетесь включить этот jsp: include в самом верху JSP, но в процессе вы заставляете 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:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns="http://www.w3.org/1999/xhtml" version="2.1">
  <jsp:output
          omit-xml-declaration="false" doctype-root-element="html"
          doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
          doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
...

Это более правильный способ обработки вывода XML из файла JSP (X) - более явный.

...