Установлен в JSF Mojarra


Какой тип документа следует использовать на страницах JSF? На днях я пытаюсь перейти с Mojarra 2.1.13 на 2.1.18, и кажется, что способ интерпретации типов doc изменился. В корневом шаблоне у меня есть следующий тип DOC

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Должен ли я также включить это?

<?xml version="1.0"?>

В композитах (которые используют этот шаблон) у меня был следующий doctype

 <!DOCTYPE composite PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Но похоже, что Mojarra 2.1.18 на самом деле не поддерживает это. Кроме того, я не нашел этого ни в одном справочнике JSF 2.0, это мы использовали в JSF 1.2. Если у меня есть этот doctype в составной странице, он будет отображать составной doctype вместо html, который находится в шаблоне. В результате стили css перепутались.

Итак, как правильно использовать doctypes в JSF 2.0. Или это проблемы с Мохаррой? Я не нашел никаких ссылок на это.

2 4

2 ответа:

Я создал проблему JIRA для этого: http://java.net/jira/browse/JAVASERVERFACES-2820

И он был закрыт, так как это ожидаемое поведение.

" составная страница-это то место, где вы фактически используете шаблон. Таким образом, это самый внешний файл, в котором вы указали тип doc. Таким образом, он определяет тип doc, который будет отображаться."

Просто укажите doctype в шаблоне и нигде больше

Я также перенес Jboss 7.1 в JBoss EAP 6.1

Я нашел не очень хороший обходной путь-вставить на каждой странице (не шаблон):

<!DOCTYPE html>

Например:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html" template="template.xhtml"> 

Есть ли другой способ-чтобы doctype считывался из главного шаблона?