Предлагается использовать h:outputText для всего?

Я новичок в JSF (только начал узнавать об этом 4 дня назад), и я немного запутался в использовании h: outputText. Я знаю, что это простой тег, но в большинстве примеров, которые я видел, он используется для вывода очень простого (не нужно убегать) текста, отличного от i18n. Например (взято отсюда)

<h:outputText value="Transport" />

который может быть заменен

Transport 

Итак, мне интересно, если я что-то упустил или большинство примеров, которые я видел, слишком сложны до безумия.

3 ответа

Решение

Если вы используете 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 настроен / настроен.

Пример, который вы цитируете, написан на XHTML - это XML. Автономный "Транспорт" может быть запрещен в той позиции, в которую вы хотите его поместить, поэтому вам необходимо "преобразовать" его в действительный xml.

IIrc это то, что в JSF2 называется Facelets и значение по умолчанию, в то время как в JSF1 код представления может быть выполнен с тегами JSP по умолчанию, а Facelets является альтернативой, которую используют многие разработчики).

Тег h:outputText требуется только в том случае, если вы визуализируете текст на основе каких-либо условий визуализации. Например: . Если это простой оператор вывода, то нет необходимости использовать тег; Вы можете просто использовать: Транспорт

Другие вопросы по тегам