数字'0'(零)在后端无法转换为double

时间:2012-12-17 05:25:43

标签: java struts

我通过struts框架发送一个从flex前端到后端的Numbers数组

    var knobValues:Array=new Array();
        for(var i:int=0;i<parXmlList.length();i++)
        {
          knobValues[i]=parBox[i].knob.value;
        }

  calcEnergy.send(knobValues);

其中,knob.value的类型为Numbers

如果数组包含数字'0',则发生以下错误。错误在相应操作类的setter方法中。当Array不包含'0'时,不会出现错误...

Error setting value
Method "setKnobValues" failed for object com.tcs.infra.ecm.action.SaveScenarioAction@8f0064 [java.lang.NoSuchMethodException: setKnobValues([Ljava.lang.String;)]

行动类中的Setter方法......

public void setKnobValues(double[] knobValues) 
{
    this.knobValues = knobValues;
}

3 个答案:

答案 0 :(得分:2)

方法setKnobValues()期望类型double[]的参数(double的数组),并且根据错误消息传递String数组。< / p>

答案 1 :(得分:0)

java.lang.NoSuchMethodException: setKnobValues([Ljava.lang.String;)

您的版本似乎兼容。

编译时的

.class与运行时的编译时间不同(假设此代码编译正常)。

答案 2 :(得分:0)

最后我设法做到了这一点...... 似乎在将0理解为零时存在问题,它在进入Action类之前被转换为String ...

因此,我不是以[] double的形式发送值,而是以逗号(,)分隔的字符串发送,并在后端进行标记...

感谢您的回复:)