Java 将未scaped资源束属性传递给JSF组件属性
更具体地说,我需要将一些i18n消息(使用资源包)传递给inputText占位符(使用JSF2.2Java 将未scaped资源束属性传递给JSF组件属性,java,jsf,jakarta-ee,internationalization,Java,Jsf,Jakarta Ee,Internationalization,更具体地说,我需要将一些i18n消息(使用资源包)传递给inputText占位符(使用JSF2.2p:passthrough): 属性文件: someI18nMessage=<helloWorld> somei18n消息= XHTML: <h:inputText id="someInput" value="#{someController.someInput}" p:placeholder="#{i18n[someI18nMessage]}" /> 这会将转义的
p:passthrough
):
属性文件:
someI18nMessage=<helloWorld>
somei18n消息=
XHTML:
<h:inputText id="someInput" value="#{someController.someInput}" p:placeholder="#{i18n[someI18nMessage]}" />
这会将转义的
打印到网页
unescape资源包消息的常用方式是:
<h:outputText value="#{i18n[someI18nMessage]}" escape="false" />
但是我不能在
h:inputText
的dep:placeholder
属性中内联这个组件,因为JSF运行时不会处理传递属性,我认为只有一个解决方法可以自己解决:{unescapeBean.i18n('somei18n消息')}
。有没有一种方法可以在xhtml外部配置所有或某些资源包而不被转义?我认为没有。转义是在呈现HTML时完成的,而不是从包中获取值时完成的。JSF是隐式地这样做的,所以我的第一个逃避自己的想法是错误的,不会起作用。您可以覆盖默认的JSF渲染器,但我不会这样做。你能给我一个具体的例子说明占位符中的未缩放HTML是非常必要的吗?我的实际例子是使用HTML实体来表示重音,例如“foó;”或带有波浪形“bañ;OK”的字母。如果你自己取消缩放,这是有效的。波浪形不会被