[jboss-user] [JBoss Seam] - BigDecimal and JSF <f:convertNumber>
tynor
do-not-reply at jboss.com
Thu Aug 30 10:09:36 EDT 2007
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#4079626
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4079626
More information about the jboss-user
mailing list