试图在这个项目的 xhtml 中保留所有演示文稿,我需要格式化 selectItem 标记中的一些值,这些值具有 BigDecimal 值,并且需要使其看起来像货币。反正有应用<f:convertNumber pattern="$#,##0.00"/>
Inside a<f:selectItem>
标签吗?
有什么方法可以做到这一点或不涉及将其推送到java代码中的解决方法?
在这里做了一些更多的研究之后,我非常确信这对于当前的 JSF 实现是不可能的。只是没有机会改变价值。
http://java.sun.com/javaee/javaserverfaces/1.2/docs/tlddocs/f/selectItem.html
tld 将itemLabel
属性显示为 a ValueExpression
,将正文内容显示<f:selectItem>
为空。因此,这些标签之一中不允许存在任何内容,并且标签必须指向 Java 模型中的逐字值。所以它已经被格式化出来了 Java 模型。
作为 jsf 的初学者,我遇到了类似的问题,也许我的解决方案很有帮助,也许它不符合“jsf 精神”
我刚刚创建了一个自定义标记库并扩展了类(在我的情况下为 org.apache.myfaces.component.html.ext.HtmlCommandButton)并覆盖了设置器以应用自定义参数。
所以而不是 <t:commandButton/>
i used <mytags:commandButton/>
,它就像我想要的那样灵活。
您可以使用该模式设置转换器,但这听起来与您想要的完全相反。