2009-10-02 13 views
0

我有一個類,看起來像這樣:如何設置浮動而不使用OGNL轉換器?

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 [email protected] [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的有默認設置基本float支持?

回答

0

好吧,我想通了。上面的代碼工作。但這是行不通的。

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

顯然OGNL將負數解釋爲字符串。我不知道如何處理這個沒有轉換器。很高興知道它會在本地處理積極的浮動和浮動。

我對此做了一些進一步的研究,發現了這個錯誤。 http://issues.apache.org/struts/browse/WW-2971

它已關閉,但版本2.1.8不在Maven中,最新版本的Struts2不依賴它。 :(

我想我會寫一個轉換器,用於現在。

0

如果您將值更改爲Float(對象),這是否工作?

+0

不,我切換到一個Float對象,它沒有工作好主意,但。 –

+0

請問您的行動有一個的getter/setter對於Foobar對象? – Nate

相關問題