Как сделать так, чтобы JSF отображал соответствие XHTML 1.0? - PullRequest
3 голосов
/ 29 февраля 2012

Мне нужно разработать веб-приложение, которое должно соответствовать «Stanca act» (Legge Stanca).До сих пор я использовал jsf2.0 (Mojarra) + primefaces 3.2, но у меня возникают проблемы с проверкой, когда я использую

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

В частности, для пустой страницы формы следующий сгенерированный HTML-код:

<form id="j_idt16" name="j_idt16" method="post" action="/econsob/faces/prova_stanca.xhtml" enctype="application/x-www-form-urlencoded">
    <input type="hidden" name="j_idt16" value="j_idt16" />
    <input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="-8952155502993391596:-7459269746161777412" autocomplete="off" />
</form>

не проходит проверку, потому что:

  • имя атрибута в теге формы не поддерживается типом документа, требуемым Stanca act
  • тип документа не допускает элемент "ввод" здесь(чуть ниже формы)
  • автозаполнение атрибута не поддерживается типом документа

Есть ли способ решить эту проблему?Возможно ли, что страница, сгенерированная jsf, не проверяется с использованием Strict?

1 Ответ

4 голосов
/ 29 февраля 2012

Стандартный рендерер JSF HTML разработан в соответствии с XHTML 1.0 Transitional.

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

Однако вы всегда можете использовать тип документа HTML5.

<!DOCTYPE html>

Он более гибкий, чем XHTML 1.0 Strictdoctype и все еще заставляет браузер работать в стандартном режиме.

Если вы действительно намереваетесь использовать XHTML 1.0 Strict, вам потребуется установить следующие параметры контекста (только Mojarra):

<context-param>
    <param-name>com.sun.faces.autoCompleteOffOnViewState</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>com.sun.faces.enableViewStateIdRendering</param-name>
    <param-value>false</param-value>
</context-param>

И / или модифицировать средства визуализации соответствующих компонентов.Вы будете рисковать ViewExpiredException s только тогда, когда какой-то чрезмерно усердный браузер изменяет значение состояния просмотра каким-либо способом автозаполнения.

...