Если вы используете JSF 2.x с Facelets 2.x вместо JSP, то оба варианта одинаково действительны.Более того, Facelets неявно оборачивает встроенный контент в компоненте, который представлен <h:outputText>
(другими словами, он будет экранироваться!).
Только всякий раз, когда вы хотите отключить экранированиеиспользуя escape="false"
, или вы хотите назначить id
, style
, onclick
и т. д. программно, или хотите использовать конвертер (либо явный через converter
, либо неявный через forClass
), тогда вам нужно<h:outputText>
.
Я сам не использую <h:outputText>
, когда в этом нет необходимости.Без этого исходный код становится лучше читаемым.Вы можете просто вставить EL в текст шаблона таким образом #{bean.text}
вместо <h:outputText value="#{bean.text}">
.До JSF 2.0 в JSP и Facelets 1.x это было невозможно, и поэтому <h:outputText>
является обязательным.Если ваша IDE выдает предупреждения об этом, скорее всего, JSF 1.x настроен / настроен.