如何在JSF XHTML中指定UTF-8字符?

问题描述 投票:2回答:2

在Java中使用String中的UTF-8字符就像指定"\u2022"一样简单。在JSF表达式语言中指定的Afaik字符串是Java字符串,例如#{'some string'}(其中''用于分隔字符串,因为""已用于分隔XHTML属性值)。

如何在JSF XHTML中指定上面的字符串"\u2022",例如在valueh:outputLabel

<h:outputLabel value="#{'\u2022'}"/>

/index.xhtml @9,45 value="#{'\u2022'}" Error Parsing: #{'\u2022'}而失败。

<h:outputLabel value="\u2022"/>

导致u2022在XHTML中生成。

搜索信息很困难,因为网页上的编码非常重要,搜索结果主要是对它的解释。

在辅助bean中引用String属性是一种有效的解决方法,也是使用资源包。

string jsf utf-8
2个回答
3
投票

通常的JSF值属性是指通常提供String的支持bean对象。此字符串支持HTML UTF-8转义,如&#xAAAA;,其中AAAA是unicode字符的十六进制代码。

所以,只需写下:

<h:outputLabel value="&#x2022;" />

您也可以在Expression Language文本中编写此转义序列:

<h:outputLabel value="#{'&#x2022;'}" />

-1
投票

XHTML是一种XML标记语言,因此接受转义为xml实体:

<h:outputText value="&quot;User&quot;" />

将打印

"User"

参考:https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML

您还可以使用资源包,它将为您提供多语言支持和unicode编码。然后你可以使用:

<h:outputText  value="#{msg.user}"/>

并在messages.properties文件中:

user=\u2022User\u2022

见BalusC回答:Internationalization in JSF, when to use message-bundle and resource-bundle?

© www.soinside.com 2019 - 2024. All rights reserved.