2009-05-29 7 views
0

내 JSP 출력의 전체 XHTML 전환 유효성 검사를 수행하려고 시도하고 있지만 걸림돌을 맞았습니다. 헤더의 상단은 다음과 같습니다JSP에서 공백이 공백 인 경우

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

그것은 다음과 같습니다 성명에 포함 된 페이지 > 태그는 몇 가지 경로를 확인 우리가 할 수 있도록 필요한 경우 프로젝트 별 헤더로 대체하십시오. 이 문제는 owportal taglib를 사용하기 전에 선언해야하며, XML 선언 앞에 빈 줄을 삽입하고 유효성 검사 경고를 발생시키는 것이 좋습니다.

나는 많은 행운없이 generate an XML declaration에 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>... 

같은 것을 시도하고있다 그리고 나는 < JSP에서 오류 "잘못된 표준 작업을"점점 오전 : 루트에게 > 라인. 가장 유용한 오류 메시지가 아닙니다. 어떻게 든 태그를 잘못 사용하고있는 것 같습니다. Tomcat 6을 실행 중이므로 JSP 버전에 문제가 없어야합니다. 누구든지 내가 뭘 잘못하고 있는지 알 수 있니? < jsp : 루트 >은 <, >을 감싸려고합니까?

+1

그래, 아마 두 가지 문제가 나타납니다. XML 문서에는 하나의 루트 요소 만있을 수 있습니다. 여기에 두 가지가 있습니다. 은 실제로 안에 있습니다. 또한 taglib을 선언하기 위해 오래된 1.x 구문을 사용하고있는 것처럼 보입니다. 제 생각에는 당신이 원하거나 사용하고자하는 것에 해당하는 일부 이 있다고 생각합니다. 그리고 그것은 내부로 들어가서 나는 믿습니다. –

답변

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

이것은 JSP에서 출력 XML을 처리하기 위해 더 올바른 방법이다 (...이 같은 일이 (당신이 2.1 같은 최근의 JSP 스펙을 사용하고 여기에 가정)로 시작하고 싶은, 그렇게하려면 X) 파일 - 더 명백하게.

+0

답변 해 주셔서 감사합니다. 네가 열거 한 두 번째 해결책에 대해 더 생각하고 있었다. 나는 jsp : root를 사용하면서 약간의 문제를 겪었다. 더 많은 정보를 원 게시물에 올렸습니다. – Kenny