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.... 2009/1/22 pochtaaac pochta <pochta...@mail.ru>: > 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 > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org