Seam 1.2.1-GA, JSF 1.2, JBoss 4.2.1-GA
I have some properties of type BigDecimal that I need to display with commas (e.g.
300,000.00). I can't use f:convertNumber's pattern:
<h:inputText id="#{id}" size="10" value="#{value}"
required="#{required}">
| <f:convertNumber pattern="#,##0.00" />
| </h:inputText>
|
since this results in a runtime error -- f:convertNumber creates a java.lang.Number --
which, sadly, BigDecimal does not conform to.
/WEB-INF/facelets/tags/inputCurrency.xhtml @15,76
| value="#{value}": /capital/CapitalCallEdit.xhtml @37,81
| value="#{capitalCallHome.instance.callAmount}":
| java.lang.IllegalArgumentException: argument type mismatch
It's trying to pass a Long to the setCallAmount(BigDecimal val) setter:
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native
method]
| NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
| DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
| Method.invoke(Object, Object...) line: 585
| BeanELResolver.setValue(ELContext, Object, Object, Object) line: 108
| FacesCompositeELResolver(CompositeELResolver).setValue(ELContext, Object, Object,
Object) line: 68
| FacesCompositeELResolver.setValue(ELContext, Object, Object, Object) line: 93
| AstValue.setValue(EvaluationContext, Object) line: 114
| ValueExpressionImpl.setValue(ELContext, Object) line: 249
| TagValueExpression.setValue(ELContext, Object) line: 93
| AstIdentifier.setValue(EvaluationContext, Object) line: 66
| ValueExpressionImpl.setValue(ELContext, Object) line: 249
| TagValueExpression.setValue(ELContext, Object) line: 93
| HtmlInputText(UIInput).updateModel(FacesContext) line: 765
| HtmlInputText(UIInput).processUpdates(FacesContext) line: 697
| UIValidateAll(UIComponentBase).processUpdates(FacesContext) line: 1056
| UIDecorate(UIComponentBase).processUpdates(FacesContext) line: 1056
| HtmlPanel(UIComponentBase).processUpdates(FacesContext) line: 1056
| ...
Is this a bug? I'm not certain - the Core JSF book (Geary/Horstman) suggests that
f:convertNumber should work with BigDecimal in JSF 1.2, but I can't find any specific
example that explicitly shows it should work.
I can't find a way to use NumberFormat-style conversions with BigDecimal with any off
the shelf converters.
This seems to be something that many others would have encountered before me -- can anyone
point me to a way to convert BigDecimal with a pattern format?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4079626#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...