Java 将未scaped资源束属性传递给JSF组件属性

Java 将未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]}" /> 这会将转义的

更具体地说,我需要将一些i18n消息(使用资源包)传递给inputText占位符(使用JSF2.2
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

的de
p:placeholder
属性中内联这个组件,因为JSF运行时不会处理传递属性,我认为只有一个解决方法可以自己解决:
{unescapeBean.i18n('somei18n消息')}
。有没有一种方法可以在xhtml外部配置所有或某些资源包而不被转义?我认为没有。转义是在呈现HTML时完成的,而不是从包中获取值时完成的。JSF是隐式地这样做的,所以我的第一个逃避自己的想法是错误的,不会起作用。您可以覆盖默认的JSF渲染器,但我不会这样做。你能给我一个具体的例子说明占位符中的未缩放HTML是非常必要的吗?我的实际例子是使用HTML实体来表示重音,例如“foó;”或带有波浪形“bañ;OK”的字母。如果你自己取消缩放,这是有效的。波浪形不会被