2009-05-29 13 views
0

私はJSP出力の完全なXHTML移行検証を達成しようとしていますが、ヘッダの先頭には、次のようになります。JSPからのXML宣言の前の空白

<jsp:include> 
    <jsp:attribute name="page"><owportal:page name="/style/portal/header.jsp" /></jsp:attribute> 
</jsp:include> 

< owportal:

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

それはこのようになります声明に含まれているページ>タグは、いくつかの異なるパスをチェックし、私たちができるように、必要に応じてプロジェクト固有のヘッダーでオーバーライドします。これに伴う問題は、XML宣言の前に空白行を挿入し、検証警告を引き起こすために、owportalタグリブを使用する前に宣言する必要があることです。

私はjsp:outputをgenerate an XML declarationに使ってみましたが、大したことはありませんでした。私はここに正しい軌道にいる場合、誰も私に知らせることができますか?

更新:

は現在、私はこの

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

ような何かをしようとしていると私は< JSPでエラー "無効な標準アクション" を取得しています:ルート>ラインを。最も有用なエラーメッセージではありません。私は間違いなくタグを間違って使用しているように思えます。私はTomcat 6を実行しているので、JSPバージョンでは問題にならないはずです。誰かが私が間違っているのを見ることができますか? < jsp:ルート>は、<のhtml >にラップすることを意味していますか?

+1

私はたぶん2つの問題を抱えています.XMLドキュメントは1つのルート要素しか持つことができません。ここには2つあります。 は実際にになります。また、古い1.x構文を使用してtaglibを宣言しているようです。私はあなたが使用したいと思っているかもしれないし、使用する必要があるものと同等のものがあると思います。そして、それは私が信じるだけでなく内部にも行きます。 –

答えて

1

あなたが正しく理解していれば、JSPの最上部にこのjsp:includeをインクルードしようとしていますが、その過程でJSPが前に一番上に数ビットの空白を出力していますXMLプリアンブル

<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を伝えるためにどのようにある別の質問を、求めていると思う:

は、このようなケースでは、私はちょうどJSPがアップそこには空白を持っていないことを確認することに頼ってきましたXML宣言を出力します。

<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"/> 
... 

、あなたがこの(あなたは2.1のような最近のJSP仕様を使用している、ここで仮定して)のようなものを開始したい...ということを行うには、これは(JSPから出力するXMLを処理するため、より正しい方法でありますX)ファイル - より明示的です。

+0

お返事ありがとうございました。そうですね、リストアップした2番目のソリューションについてもっと考えていました。私はjsp:rootを使用していましたが、いくつかの問題に遭遇しました。元の投稿をより多くの情報で更新しました。 – Kenny