javaScript 的方法function allSet() { var arrayNum = [];  for (i=0; i<no.length; i++) {   arrayNum[y] = numText[i].value;  =〉 这是从页面输入的数字值  }  document.listForm.quantitys.value = arrayNum; =〉 Action的 Form名字-〉listForm; 
                                                             Form的quantitys 的定义为 
                                                                           private BigDecimal[] quantitys;
 
}出现的错误信息是下面的这个型错误java.lang.NumberFormatException是什么问题?

解决方案 »

  1.   

    首先:java.lang.NumberFormatException 不是JavaScript的问题;
    其次,如果是JSP呢,java程序需要用 “<% %>”扩起来;
    再次,你的JavaScript程序,需要用<script></script>标签扩起来;
    最后,祝你成功!
      

  2.   

    不好意思, 我这个没有写全,只是把中间的贴出来了其次,如果是JSP呢,java程序需要用 “ <% %>”扩起来; 
    再次,你的JavaScript程序,需要用 <script> </script>标签扩起来; 这个都有的,
      

  3.   

    这个是JAVA异常,仔细查看一下调用的类中的方法(格式问题)
      

  4.   

    public class NumberFormatException extends IllegalArgumentException
    当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。 Java API上是这样描述的;
    看看你的Java程序那里有讲字符串转换成数字的方法,检查那个字符串;
      

  5.   

    要明确哦,javascript和java是完全不一样的东西,
    你这里是java异常,把java部分贴出来吧
      

  6.   

    应该是arrayNum[y] = numText[i].value; 错误或document.listForm.quantitys.value = arrayNum 有问题定义数组时没定义长度。而且后边给list赋值也不能那么赋。
      

  7.   

    报的错误是类型转换错误,var arrayNum = []; 与private BigDecimal[] quantitys 赋值时需要类型转化一下吧  
      

  8.   

    我把抛出的列外贴出来吧
    javax.servlet.ServletException: BeanUtils.populate
    org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
    org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
    org.seasar.struts.processor.S2RequestProcessor.processPopulate(S2RequestProcessor.java:152)
    org.seasar.struts.processor.PopulateProcessorImpl.processPopulate(PopulateProcessorImpl.java:65)
    org.seasar.struts.processor.S2RequestProcessor.processS2Populate(S2RequestProcessor.java:158)
    org.seasar.struts.processor.AcceptorImpl.process(AcceptorImpl.java:94)
    org.seasar.struts.processor.S2RequestProcessor.process(S2RequestProcessor.java:74)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
    org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:50)
    org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:60)
    原因 org.apache.commons.beanutils.ConversionException
    org.apache.commons.beanutils.converters.BigDecimalConverter.convert(BigDecimalConverter.java:117)
    org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:464)
    org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:986)
    org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
    org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
    org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
    org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
    org.seasar.struts.processor.S2RequestProcessor.processPopulate(S2RequestProcessor.java:152)
    org.seasar.struts.processor.PopulateProcessorImpl.processPopulate(PopulateProcessorImpl.java:65)
    org.seasar.struts.processor.S2RequestProcessor.processS2Populate(S2RequestProcessor.java:158)
    org.seasar.struts.processor.AcceptorImpl.process(AcceptorImpl.java:94)
    org.seasar.struts.processor.S2RequestProcessor.process(S2RequestProcessor.java:74)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
    org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:50)
    org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:60)
    原因 java.lang.NumberFormatException
    java.math.BigDecimal.<init>(Unknown Source)
    java.math.BigDecimal.<init>(Unknown Source)
    org.apache.commons.beanutils.converters.BigDecimalConverter.convert(BigDecimalConverter.java:112)
    org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:464)
    org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:986)
    org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
    org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
    org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
    org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
    org.seasar.struts.processor.S2RequestProcessor.processPopulate(S2RequestProcessor.java:152)
    org.seasar.struts.processor.PopulateProcessorImpl.processPopulate(PopulateProcessorImpl.java:65)
    org.seasar.struts.processor.S2RequestProcessor.processS2Populate(S2RequestProcessor.java:158)
    org.seasar.struts.processor.AcceptorImpl.process(AcceptorImpl.java:94)
    org.seasar.struts.processor.S2RequestProcessor.process(S2RequestProcessor.java:74)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
    org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:50)
    org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:60)
      

  9.   

    呵呵,用的是Struts;
    应该是类型转换错误,服务器端不认识客户端提交过来的“quantitys”数据;
    数组不能这样提交;
    两种方案:
    一种在客户端拼接字符串,在服务器端用字符串接收,然后拆分字符串;
    另一种,在客户端用同名组件存储数组的值,提交给服务器端,用数组接收;
      

  10.   

    同样的方法,给 String[] 负值就没问题
    function allSet() { var arrayNum = []; 
    var arrayId = [];  for (i=0; i <no.length; i++) {      arrayNum[y] = numText[i].value;  =〉 这是从页面输入的数字值       arrayId[y] = parId[i].value;    =〉 这是从页面输入的名字值   } 
    document.listForm.quantitys.value = arrayNum; =〉 document.listForm.partIds.value = arrayId; =〉  Form 里的格式是
                                                         private String[] partIds;
    我把数字的那一行取消的话,这个就正常执行,
    如果加数字的行的话,就抛出上述例外
    和大家的想法一样, 我也觉得是转换的时候的例外,但是不知道怎么改,有没有人碰到过同样的问题?
      

  11.   

    nianersmall 你能具体给个代码吗? 我搞了半天头都大了
      

  12.   

    你的脚本代码:document.listForm.quantitys.value = arrayNum;
    这样的赋值,应该是没有效果;
    你可以在复制后,alert一下,看看是什么东东;
      

  13.   

    给你个伪代码吧;我手头还真没有现成的;
    在form里定义一个
    <div id="a"></div>
    脚本的部分:function allSet() 
    {
        var arrayNum = [];
        var arrayId = [];
        for (i=0; i <no.length; i++) 
        {
            arrayNum[y] = numText[i].value;  =〉 这是从页面输入的数字值
            arrayId[y] = parId[i].value;    =〉 这是从页面输入的名字值
        }
        for (i=0; i <arrayId.length; i++) 
        {
            document.getElementById("a").innerHTML = document.getElementById("a").innerHTML + "<input type='hidden' name='partIds' value='" + arrayId[i] + "'/>" + "<input type='hidden' name='arrayNum' value='" + arrayNum[i] + "'/>";
        }
      

  14.   

    alert 看了一下,果然是  30,40 中间是逗号但是就是给 document.listForm.quantitys.value 赋值出问题请问     private BigDecimal[] num;      在java上赋值怎么做? 
      

  15.   

    用Sting接收,然后用字符串的split方法拆分成字符串数组;
    然后在逐一转换成数字;