2013-07-26 2 views
2

<ul> 안에 두 개의 <svg> 요소를 사용하고 있습니다.JSF가 SVG 뒤에 닫는 태그를 닫습니다.

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:f="http://java.sun.com/jsf/core"  
    xmlns:h="http://java.sun.com/jsf/html"> 

... 
<ul> 
    <li> 
     <svg xmlns="http://www.w3.org/2000/svg" version="1.1" >...</svg> 
    </li> 
    <li> 
     <svg xmlns="http://www.w3.org/2000/svg" version="1.1" >...</svg> 
    </li> 
</ul> 
... 
</html> 

JSF는 HTML을 렌더링 할 때 첫 번째 닫기 인 </li>을 삼키는 중입니다.

이 버그입니까? 아니면 내 xhtml이 유효하지 않습니까?

저는 Mojarra 2.1.7을 사용하고 있습니다.

업데이트 : @BalusC가 제안한대로 the Mojarra Guys으로보고했습니다.

업데이트 2 :가 인 Mojarra 2.1.26으로 고정 및 2.2.3

답변

2

나는 2.1.24에서 재현 할 수 있습니다. 이것이 Facelets의 SAX 파서의 버그인지는 확실치 않지만 실제로 중첩 된 네임 스페이스에서 혼란스럽게 보입니다. <svg xmlns>을 사용하여 HTML 태그에 대해 <html xmlns>을 무시한 새로운 기본 XML 네임 스페이스를 선언했습니다. 나는 Mojarra 친구들에게이 문제를 report에게 추천합니다.

Facelets에서 SVG를 사용하는 올바른 방법은 전체 <svg> 콘텐츠를 .svg 파일로 분리하고 <ui:include>을 통해 포함시키는 것입니다.

<ul> 
    <li> 
     <ui:include src="/resources/svg/one.svg" /> 
    </li> 
    <li> 
     <ui:include src="/resources/svg/two.svg" /> 
    </li> 
</ul> 

이렇게하면 네임 스페이스가 잘 작동합니다. 추가 이점은 SVG가 즉시 재사용 할 수있는 방법입니다.

+0

재검토 해 주셔서 감사합니다. 나는 [티켓을 열었다] (https://java.net/jira/browse/JAVASERVERFACES-2968). ''을 통해 포함 된 svg에 대한 또 하나의 질문 :이 파일은''으로 시작해야하며'http : // www.w3.org/2000/svg'는 기본 네임 스페이스 여야합니다. 파일에 svg를 "있는 그대로"배치 하시겠습니까? – lefloh

+0

아니요, 표준 SVG 구문 (doctype없이) 만 괜찮습니다. – BalusC

+0

감사합니다. – lefloh

관련 문제