我正在通过 struts 框架将一组数字从 flex 前端发送到后端,作为
var knobValues:Array=new Array();
for(var i:int=0;i<parXmlList.length();i++)
{
knobValues[i]=parBox[i].knob.value;
}
calcEnergy.send(knobValues);
其中 as knob.value 的类型为 Numbers
如果数组包含数字"0",则会发生以下错误。错误出在相应操作类的 setter 方法中。当数组不包含"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;
}
方法 setKnobValues()
需要类型为 double[]
(double
数组)的参数,并且您正在根据错误消息向其传递一个String
数组。
java.lang.NoSuchMethodException: setKnobValues([Ljava.lang.String;)
看来您的版本不兼容。
编译时.class
与运行时不同(假设此代码编译正常)。
最后,我以某种方式设法做到了这一点...似乎将 0 理解为零存在问题,在进入 Action 类之前,它正在中间转换为字符串......
因此,我不是将值作为 []double 发送,而是作为逗号(,) 分隔的字符串发送并在后端对其进行标记......
感谢您的回应:)