¿Cómo se configura un flotador sin necesidad de utilizar un convertidor OGNL?
-
19-09-2019 - |
Pregunta
Tengo una clase que tiene este aspecto:
public class Foobar {
private float value;
public void setValue(float value) {
this.value = value;
}
}
Entonces tengo una página web (Struts2) que pasa en una foobar.value variable.
<input type="text" name="foobar.value" value="123.456">
A continuación, obtener este error:
ognl.MethodFailedException: Method "setValue" failed for object Foobar@19d373d [java.lang.NoSuchMethodException: setValue([Ljava.lang.String;)]
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:823)
He encontrado este sitio web que habla de la creación de convertidores http: // www. opensymphony.com/ognl/html/DeveloperGuide/typeConversion.html
no OGNL y Struts2 tener soporte para el establecimiento de un flotador primitiva de forma predeterminada?
Solución 2
De acuerdo, lo he descubierto. El código anterior funciona. Pero esto no funciona.
<input type="text" name="foobar.value" value="-123.456">
Al parecer OGNL interpreta el número negativo como una cadena. No estoy seguro de cómo hacer frente a esto sin un convertidor. Es bueno saber que se encargará de flotación positiva y flotar de forma nativa.
He hecho un poco más investigación en este encontró sobre este error. http://issues.apache.org/struts/browse/WW-2971
Es cerrada pero la versión 2.1.8 no está en Maven y la última versión de Struts2 no se basa en ella todavía. : (
Creo que voy a estar escribiendo un convertidor de momento.
Otros consejos
Si cambia el valor de flotador (el objeto), funciona eso?