Frage

Ich habe eine Klasse, die wie folgt aussieht:

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

Ich habe dann eine Webseite (Struts2), die in einer Variablen foobar.value übergeben.

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

ich dann diesen Fehler:

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

fand ich diese Website, die über das Erstellen von Konvertern spricht http: // www. opensymphony.com/ognl/html/DeveloperGuide/typeConversion.html

Nicht OGNL und Struts2 Unterstützung hat standardmäßig einen primitiven Schwimmer zur Einstellung?

War es hilfreich?

Lösung 2

OK, ich es herausgefunden. Der obige Code funktioniert. Aber das funktioniert nicht.

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

Offenbar OGNL interpretiert die negative Zahl als String. Ich bin nicht sicher, wie man damit ohne Konverter beschäftigen. Es ist schön zu wissen, dass es positiven Schwimmer behandelt und Float nativ.

habe ich einige weitere Forschung auf diesem über diesen Fehler gefunden. http://issues.apache.org/struts/browse/WW-2971

Es ist geschlossen, aber die Version 2.1.8 ist nicht in Maven und die neueste Version von Struts2 verlässt sich nicht auf ihn noch nicht. : (

Ich denke, ich werde einen Konverter für jetzt schreiben.

Andere Tipps

Wenn Sie Wert ändern Float (das Objekt), geht das?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top