代码之家  ›  专栏  ›  技术社区  ›  Kalle Richter

如何在JSF XHTML中指定一个utf-8字符?

  •  2
  • Kalle Richter  · 技术社区  · 6 年前

    在Java中使用UTF-8字符 String 很容易说明 "\u2022" . JSF表达式语言中指定的AFIK字符串是Java字符串,例如 #{'some string'} (何处) '' 用于分隔字符串,因为 "" 已用于分隔XHTML属性值)。

    如何指定上面的字符串 “\u2022” 在JSF XHTML中,例如在 value A的 h:outputLabel ?

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

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

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

    结果 u2022 在XHTML中生成。

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

    引用 支持bean中的属性是一个有效的解决方法,也可以使用资源束。

    2 回复  |  直到 6 年前
        1
  •  3
  •   fxrobin    6 年前

    通常的JSF值属性指的是一个支持bean对象,它通常提供 String . 这个字符串支持这样的HTML UTF-8转义 &#xAAAA; 在哪里? AAAA 是Unicode字符的十六进制代码。

    所以,简单地写下:

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

    您也可以用表达式语言编写这个转义序列:

    <h:outputLabel value="#{'&#x2022;'}" />
    
        2
  •  -1
  •   Sergio Daniel Coronel Malvarez    6 年前

    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?