我是JSF的新手(刚刚在4天之前开始学习它),并且对h:outputText的用法有些困惑。我知道这是一个简单的标签,但是在我看到的大多数示例中,它都用于输出非常简单(无需转义)的非i18n文本。例如(取自here)

<h:outputText value="Transport" />

可以替换为
Transport

因此,我想知道我是否丢失了某些东西,或者我看到的大多数示例是否过于复杂,以致于精神错乱。

最佳答案

如果您将JSF 2.x与Facelets 2.x结合使用,而不是JSP,那么两者都同样有效。更何况,Facelets隐式地将内联内容包装在由<h:outputText>表示的组件中(换句话说,将转义!)。

仅在您希望使用escape="false"禁用转义,或者想以编程方式分配idstyleonclick等时,或者想要使用转换器(通过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已配置/配置了。

10-08 08:00