Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Struts2 validacion double generica

Estas en el tema de Struts2 validacion double generica en el foro de Java en Foros del Web. Hola tengo el siguiente validado de double en struts2 @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código XML: Ver original <field name = "Valor1" >         <field-validator ...
  #1 (permalink)  
Antiguo 15/04/2015, 12:35
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Struts2 validacion double generica

Hola tengo el siguiente validado de double en struts2

Código XML:
Ver original
  1. <field name="Valor1">
  2.         <field-validator type="required">
  3.           <message>Debe insertar un valor.</message>
  4.       </field-validator>
  5.         <field-validator type="double"  >
  6.             <param name="minExclusiveExpression">${minExclusiveValue}</param>
  7.             <param name="maxExclusiveExpression">${maxExclusiveValue}</param>
  8.             <message>Debe introducir un valor 1.</message>
  9.         </field-validator>
  10.     </field>

Código Java:
Ver original
  1. public double getMinExclusiveValue() {
  2.         return Double.MIN_VALUE;
  3.     }
  4.  
  5.     public double getMaxExclusiveValue() {
  6.         return Double.MAX_VALUE;
  7.     }

el resto de validaciones van pero el double lo ignora que es lo que hago mal.
  #2 (permalink)  
Antiguo 15/04/2015, 12:45
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Struts2 validacion double generica

Buenas,

Cita:
el double lo ignora que es lo que hago mal
Por qué dices que lo ignora? Que son los valores que estás introduciendo para probar?

https://struts.apache.org/maven/xwor...Validator.html

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 15/04/2015, 14:56
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: Struts2 validacion double generica

Lo que ocurre es que si meto una letra o cadena no salta la validación. Cuando al ser double debería salir tipo incorrecto no?
  #4 (permalink)  
Antiguo 15/04/2015, 16:18
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: Struts2 validacion double generica

Al final lo he validado con una expresión regular pero me ha quedado la duda sobre el uso de double en struts2 con validaciones a través de xml


Código XML:
Ver original
  1. <field name="Valor1">
  2.         <field-validator type="required">
  3.             <message>Debe insertar un valor.</message>
  4.         </field-validator>
  5.         <field-validator type="regex">
  6.             <param name="regex"><![CDATA[(^[\+\-]{0,1}[0-9]+[\.]{1}[0-9]+$)]]></param>
  7.             <message>Solo numeros permitidos. Ejemplo: 10.0 </message>
  8.         </field-validator>
  9.     </field>
  #5 (permalink)  
Antiguo 16/04/2015, 00:36
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Struts2 validacion double generica

Buenas,

Efectivamente el field-validator double no verifica si lo introducido es o no un numero y hay que completarlo con una regex, por ejemplo, como has hecho.

Esto puede resultar un poco confuso, y de hecho hay mucha gente con tu misma duda:
http://www.coderanch.com/t/433036/St...idation-Number

Para verificarlo, basta mirar el codigo fuente del validador:
http://grepcode.com/file/repo1.maven...Validator.java

Cita:
public void More ...validate(Object object) throws ValidationException {
76 String fieldName = getFieldName();
77 Double value;
78 try {
79 Object obj = this.getFieldValue(fieldName, object);
80 if (obj == null) {
81 return;
82 }
83 value = Double.valueOf(obj.toString());
84 } catch (NumberFormatException e) {
85 return;
86 }

87
88 parseParameterValues();
89 if ((maxInclusiveValue != null && value.compareTo(maxInclusiveValue) > 0) ||
90 (minInclusiveValue != null && value.compareTo(minInclusiveValue) < 0) ||
91 (maxExclusiveValue != null && value.compareTo(maxExclusiveValue) >= 0) ||
92 (minExclusiveValue != null && value.compareTo(minExclusiveValue) <= 0)) {
93 addFieldError(fieldName, object);
94 }
95 }

Como puedes ver en negrita, si no puede convertir a double, ignora el problema y hace un return.



Un saludo
__________________
If to err is human, then programmers are the most human of us
  #6 (permalink)  
Antiguo 16/04/2015, 10:18
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: Struts2 validacion double generica

Gracias lo supuse al final

Etiquetas: double, generica, struts2, validacion, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:39.