【问题标题】:JSF 2 : can EL do something like this?JSF 2:EL 可以做这样的事情吗?
【发布时间】:2010-12-28 10:12:25
【问题描述】:

这行得通:

<h:outputText value="Active Locale : " /> 
#{view.locale}

但是我怎样才能用 EL 实现这样的目标呢?

<h:outputText value="Active Locale Decimal Separator : " /> 
#{new DecimalFormat(view.locale).decimalFormatSymbols.groupingSeparator}

【问题讨论】:

    标签: jsf jsf-2 el


    【解决方案1】:

    我想知道您对groupingSeparator 的确切含义是什么?

    标准java.text.DecimalFormat 既没有getGroupingSeparator 也没有groupingSeparator 字段或方法。所以我对你真正想要达到的目标有点摸不着头脑。您想打印 _ 吗?那么如果local是en_uk,那结果就是“_”?

    无论您到底想要什么,您几乎都可以通过构建自己的 EL 函数来完成所有工作。在 EL 中,它看起来像这样:

    #{my:someFormatting(view.locale)}
    

    someFormatting 然后被实现为静态 Java 方法,然后您可以分配自己的命名空间(在本例中为“my”)。如果需要,请查找教程以帮助您解决此问题。

    还有一些可用于 Facelets 的标准 EL 函数。这些是在以下命名空间中定义的 JSTL 函数:

    xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    

    根据您的具体需要,它们也可能会有所帮助。

    【讨论】:

    • 抱歉,在 Java 中应该是这样的: new DecimalFormat(myLocale).getDecimalFormatSymbols().getGroupingSeparator();它用于获取数字或货币组分隔符,例如点字符或逗号字符,具体取决于语言环境。感谢您的投入。所以这意味着我真的必须从托管 bean 中获取它或使用自定义 EL 函数。祝你有美好的一天!
    • 只是为了阻止其他人继续我刚才的疯狂追逐,JSTL 函数库的正确命名空间 URI 实际上是 http://java.sun.com/jsp/jstl/functions(注意 jsp/)。
    猜你喜欢
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2016-05-09
    • 2017-11-21
    • 2012-02-19
    • 2017-11-30
    • 1970-01-01
    相关资源
    最近更新 更多