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

Reply via email to