Hola, necesito ayuda en algo simple pero q no lo entender porq lo hace..
El proyecto lo trabajo sobre spring, webwork y la BD en Mysql.
Tengo un action donde creo en un Map una lista de costos (id ENTERO, costo FLOTANTE).
la genera correctamente y la envio a un <select <option mediante un iterator para desplegar las opciones.
Hasta aqui todo va bien (despliega las opciones correctamente)
El problema es que al seleccionar el costo deceado del <select, el valor que me envia al VO me agrega un 0.0 al final del float, es decir,
Tengo las opciones:
91.15
91
333.19
Si yo selecciono la opcion 19.15, al darle submit envio toda la informacion al VO, peeeero en el setter de mi VO user recibe el numero 1915.0, en caso de 91 obtengo 910.0.
AUXILIOOO !!
Les dejo parte de mi codigo.
------ Mi Action (DE ESTE SEGURO QUE ESTA BIEN) ---
ArrayList<CostLotusNVO> lotusCat = new ArrayList<CostLotusNVO>();
session.put("_COSTLOTUS_CAT",mgr.costLotusCatalogu e(costLotusVO, lotusCat));
------ MI VO: -----
//lotusNotes
private String lotusDescrip;
private Float lotusCost;
public Float getLotusCost() {
return lotusCost;
}
public void setLotusCost(Float lotusCost) {
this.lotusCost = lotusCost;
}
---- MI JSP -----
<table>
LotusNotes Cost:
<select onChange="ParseFloat()" id="lotusCost" name="user.lotusCost"> // el ParseFloat solo es para comprobar que HASTA AQUI el valor es un float, cosa que es correcto
<option>
<ww:property value="user.lotusCost" default="-----Select LotusNotes -----"/>
</option>
<ww:iterator value="%{#session._COSTLOTUS_CAT}">
<option value=<ww:property value="cost"/>>
<ww:property value="cost"/>
</option>
</ww:iterator>
</select>
<ww:textfield label="%{getText('user.lotusDescrip')}" name="user.lotusDescrip" id="user.lotusDescrip" value="%{user.lotusDescrip}"/>
</td>
(anexo el modulo del ParseFloat())
<script type="text/javascript">
function ParseFloat(){
var lotusCost = parseFloat(document.forms['editUser'].elements['lotusCost'].value);
var sameCost = parseFloat(document.forms['editUser'].elements['sameCost'].value);
if(!isNaN(lotusCost)){alert("es numero "+lotusCost);}
if(!isNaN(sameCost)){alert("es numero "+sameCost);}
}
- Al generar el Map (session) esta correcto
- Al desplegar las en el <select esta correcto
- Al seleccionar una opcion en el <select es correcto
- Al recibir el float en el VO user XXXXX INCORRECTO !
Tengo varios dias investigando porque rayos hace esto y nop.. no logro entender
De antemano GRACIAS !!