Можно ли указать Mojarra 2.2, какой DocType отображать на полученных html-страницах?Как указать целевой DOCTYPE в JSF 2.2?
Кажется, что он всегда делает следующий HTML5 Doctype:
<!DOCTYPE html>
В нашем шаблоне facelet мы используем следующую декларацию DocType, и мы хотим, чтобы держать его в генерируемый HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
шаблон:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html 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">
<h:body>
<ui:insert name="content">Will be replaced</ui:insert>
</h:body>
</html>
содержание:
<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://java.sun.com/jsf/html"
template="/templates/standalone.xhtml">
<ui:define name="content">
<h:panelGroup>
Foo
</h:panelGroup>
</ui:define>
</ui:composition>
Результат:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><body>
Foo
</body>
</html>
Я попробовал его с Mojarra 2.2.7 и 2.2.12 с использованием GlassFish 4.1.
Это не поведение по умолчанию. Итак, было бы полезно, если бы вы указали точную версию Mojarra, включите однопрофильный MVCE в вопросе (есть довольно определенная двусмысленность, потому что вы сказали там «шаблон») и/или в то же время попробуйте использовать последнюю последнюю версию (2.2.12). – BalusC
Я добавил пример и попробовал его с Mojarra 2.2.12 с тем же результатом. – anotherUser
Я воспроизвел его. Это действительно не намеренное поведение. – BalusC