我有一个类,看起来像这样:

public class Foobar {
   private float value;
   public void setValue(float value) {
      this.value = value;
   }
}

我然后有一个网页(Struts2的),在一个可变foobar.value通过。

<input type="text" name="foobar.value" value="123.456">

我然后得到这个错误:

ognl.MethodFailedException: Method "setValue" failed for object Foobar@19d373d [java.lang.NoSuchMethodException: setValue([Ljava.lang.String;)]
    at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:823)

我发现这个网站,讨论有关创建转换器 HTTP:// WWW。 opensymphony.com/ognl/html/DeveloperGuide/typeConversion.html

不OGNL和Struts2的具有用于通过默认设置一个原始浮体支撑件?

有帮助吗?

解决方案 2

行,我计算出来。上面的代码不工作。但是,这是行不通的。

 <input type="text" name="foobar.value" value="-123.456">

显然OGNL解释负数为一个字符串。我不知道如何处理这种无需转换器。很高兴知道,它会处理正浮和本地浮动。

我做了这方面的一些进一步的研究发现,大约这个bug。 http://issues.apache.org/struts/browse/WW-2971

这是封闭的,但版本2.1.8是不是在Maven和Struts2的最新版本不依赖于它。 :(

我想我会写一个转换器了。

其他提示

如果您更改值浮动(对象),运作的?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top