William
William

Reputation: 6428

JSF selectItem label formatting

Trying to keep all the presentation stuff in the xhtml on this project and I need to format some values in a selectItem tag have a BigDecimal value and need to make it look like currency. Is there anyway to apply a <f:convertNumber pattern="$#,##0.00"/> Inside a <f:selectItem> tag?

Any way to do this or a work around that doesn't involve pushing this into the java code?

Upvotes: 4

Views: 4267

Answers (3)

Andreas Petersson
Andreas Petersson

Reputation: 16518

being a beginner to jsf i had a similar problem, maybe my solution is helpful, maybe its not in the "jsf spirit"

i just created a custom taglib and extended the class (in my case org.apache.myfaces.component.html.ext.HtmlCommandButton) and overrided the setters to apply custom parameters.

so instead of <t:commandButton/> i used <mytags:commandButton/>, which is as flexible as i want.

Upvotes: 2

William
William

Reputation: 6428

After doing some more research here I'm pretty convinced this isn't possible with the current implementation of JSF. There just isn't an opportunity to transform the value.

http://java.sun.com/javaee/javaserverfaces/1.2/docs/tlddocs/f/selectItem.html

The tld shows the itemLabel property as being a ValueExpression and the body content of <f:selectItem> as being empty. So nothing is allowed to exist inside one of these tags, and the label has to point to a verbatim value in the Java model. So it has be be formatted coming out of the Java model.

Upvotes: 4

sblundy
sblundy

Reputation: 61414

You could setup a converter with that pattern, but that sounds like the exact opposite to what you want.

Upvotes: 0

Related Questions