It turns out that the problem I was having - had nothing to do with type conversion.
The problem was a chunk of my code that was responsible for formatting. Specifically, the exception "IllegalArgumentException: Cannot format given Object as a Number" was thrown because of <s:text name="format.money" > <s:param name="value" value="myd"/> </s:text> (format.money is defined in package properties -->format.money = {0,number,ยค##0.00}) "myd" supposed to be a double. The problem occurred when wrong value was inserted instead of double (e.g. 'aaa' instead of 7,5). The same code threw no exceprion in struts 2.0, but in 2.1.6 it does. (I said earlier that earlier that showcase run differently than blank ... but I thing that was due to the fact that I didn't copy all the code from one project to other - sorry about that ;) So the problem is not so serious as I thought it was. I will try to solve this by checking first if myd contains double or not before formatting.... On Thu, Jan 22, 2009 at 10:04 AM, Sergio Italiani <sergiode...@gmail.com> wrote: > While having done the same with struts 2.0 blank project - work > perfectly well. Also works if i add the code to struts2-showcase > (validation folder). > > The problem is as follows: > > I tried to add double validation to 2.1.6 blank project and if i type > in form illegal value - say 'aaa' - instead of showing the > invalid.fieldvalue.variable message it throws the following exception > : > > > java.lang.IllegalArgumentException: Cannot format given Object as a Number > java.text.DecimalFormat.format(DecimalFormat.java:487) > java.text.Format.format(Format.java:140) > java.text.MessageFormat.subformat(MessageFormat.java:1288) > java.text.MessageFormat.format(MessageFormat.java:836) > java.text.Format.format(Format.java:140) > > com.opensymphony.xwork2.util.LocalizedTextUtil.getMessage(LocalizedTextUtil.java:673) > > com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:427) > > com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:242) > com.opensymphony.xwork2.ActionSupport.getText(ActionSupport.java:108) > > org.apache.struts2.util.TextProviderHelper.getText(TextProviderHelper.java:79) > org.apache.struts2.components.Text.end(Text.java:161) > > org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42) > > org.apache.jsp.example.Login_jsp._jspx_meth_s_005ftext_005f0(Login_jsp.java:268) > org.apache.jsp.example.Login_jsp._jspService(Login_jsp.java:91) > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) > javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) > javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > > org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) > > org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154) > > org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186) > > com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265) > > com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249) > > org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195) > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138) > > com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > > com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) > > com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236) > org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) > org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468) > > org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) > > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76) > > org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) > > Configuration: > I made some modifications to Struts blank Project so that: > package.properties contains --> > invalid.fieldvalue.myd = is not double > myd = My Double > struts.properties --> > > struts.ui.theme=xhtml > struts.custom.i18n.resources=global-messages > struts.locale=el_GR > > Login.jsp > <s:textfield key="myd"/> > > Login.java > private Double myd; > > /** > * @return the myd > */ > public Double getMyd() { > return myd; > } > > /** > * @param myd the myd to set > */ > public void setMyd(Double myd) { > this.myd = myd; > } > > > Could you please tell me if its a configuration problem and why the > same code is working in showcase but not in blank project. > Thank you. > Sergio .I. > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org