Se me desorndenan los datos al insertarlos

A ver tío tengo una pregunta, el otro día también te hice una sobre mi aplicación web y me la resolviste y te doi las gracias de nuevo, y a ver te dejo ahora la nueva pregunta:
Mira tengo en la empresa donde estoy mi aplicación en elcipse (trabajo con ubuntus) y ahora me la traje a mi casa y cuando la importo todo funciona bien, excepto cuando le doi a añadir usuario, entonces los campos los pones como le da la gana en el nombre mete dirección, en dirección mete el dni, y así, cuando es el mismo código que en la empresa y ayi lo hice esta mañana y funciona bien. (Aquí tengo windows)
Mis datos pasan de un controller que pasan todos bien nombre, dni, dirección y password a un dto que supuestamente tienen el mismo orden porque en la empresa funciona bien y digo supuestamente porque cuando pongo el punto de interrupcioon a ver lo que falla, entra en el controller tiene todos los datos bien puestos pero cuando los va a pasar a usuariodto, el usuariodto cambia de ser (nombre, dirrecion, dni, password) a ser (dirrecion, dni, nombre, password) y este cambio lo hace solo y no se porque te dejo aquí el código para que lo veas
UsuarioDto=================================================
public class UsuarioDto {
private String nombre;
private String direccion;
private String dni;
private String password;
public UsuarioDto(){
}
public UsuarioDto(String nombre,String direccion,String dni,String password){
setNombre(nombre);
setDireccion(direccion);
setDni(dni);
setPassword(password);
}
//mnostramos la direccion del usuario
public String getDireccion() {
return direccion;
}
//introducimos la direccion del usuario
public void setDireccion(String direccion) {
this.direccion = direccion;
}
//mostramos el nombre de usuario
public String getNombre() {
return nombre;
}
//insertamos el nombre de usuario
public void setNombre(String nombre) {
this.nombre = nombre;
}
//mostramos el Dni de usuario
public String getDni() {
return dni;
}
//insertamos el dni de usuario
public void setDni(String dni) {
this.dni = dni;
}
//mostramos el password de usuario
public String getPassword() {
return password;
}
//insertamos el password de usuario
public void setPassword(String password) {
this.password = password;
}
//mostramos en una cadena
public String toString(){
return "nombre" + getNombre() + "direccion" + getDireccion() + "dni" + getDni() + "password" + getPassword();
}
}
y ahora el altausuarioController========================================
package com.isotrol.pizzeria.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import com.isotrol.pizzeria.dto.PizzaDto;
import com.isotrol.pizzeria.dto.UsuarioDto;
import com.isotrol.pizzeria.forms.AltaUsuarioForm;
import com.isotrol.pizzeria.servicios.UsuarioServicio;
public class AltaUsuarioController extends SimpleFormController {
UsuarioServicio usuarioServicio;
String successAltaUsuario;
@Override
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception {
AltaUsuarioForm pAltaUsuario = (AltaUsuarioForm) command;
ModelAndView mav = null;
String dni=pAltaUsuario.getDni();
String nombre=pAltaUsuario.getLogin();
String direccion=pAltaUsuario.getDireccion();
String password=pAltaUsuario.getPassword();
UsuarioDto usuario;
HASTA AQUI LO HACE TODO BIEN TODAS LAS VARIABLES APUNTAN BIEN
try {
if(dni!=null){
usuario= new UsuarioDto();
Cuando llega aquí usuario de dto ahora es dirección, dni, nombre, password que es lo único que se queda bien y por mucho que lo cambie siempre sale mal
usuario = new UsuarioDto(nombre,direccion,dni,password);
usuarioServicio.altaUsuario(usuario);
mav=new ModelAndView(getSuccessAltaUsuario());
}
else{
errors.reject("error.usuario.noencontrado");
mav = showForm(request, response, errors);
}
} catch (Exception e) {
e.printStackTrace();
}
return mav;
}
public UsuarioServicio getUsuarioServicio() {
return usuarioServicio;
}
public void setUsuarioServicio(UsuarioServicio usuarioServicio) {
this.usuarioServicio = usuarioServicio;
}
public String getSuccessAltaUsuario() {
return successAltaUsuario;
}
public void setSuccessAltaUsuario(String successAltaUsuario) {
this.successAltaUsuario = successAltaUsuario;
}
}
Como te digo allí en la empresa funciona correctamente tío

1 respuesta

Respuesta
1
Uf, me pillas teniendo que cerrar pero le he echado un ojo a tu código. Para empezar algo que funciona en una máquina puede fallar en otra, pero es raro, sobre todo siendo en Java que es más o menos independiente. En ese aspecto deberías revisar que version de JDK usas en casa respecto a la del trabajo (Aunque dudo que el ser una JDK u otra, Windows o ubuntu, pueda ocasionar un problema tan raro, pero en estas cosas nunca se sabe)
Luego en cuanto al código no veo nada mal sin un profundo estudio. Aunque esto es raro:
usuario= new UsuarioDto();
usuario = new UsuarioDto(nombre,direccion,dni,password);

Ya que la primera creación del objeto no sirve para nada, aunque no se si es porque estuvieras haciendo pruebas.
No me explico como la segunda creación con el constructor puede cambiar el orden de los parámetros, a menos que las variables no contengan lo que deben (no has puesto la página o formulario para comprobarlo) y tú dices que si lo contienen.
Puedes probar esto aunque el resultado debería ser el mismo:
usuario= new UsuarioDto();
usuario.setNombre(pAltaUsuario.getLogin());
usuario.setDni(pAltaUsuario.getDni());
usuario.setPassword(pAltaUsuario.getPassword());
usuario.setDireccion(pAltaUsuario.getDireccion());

Este tipo de errores que yo llamo "expedientes x" solo suelen verse con paciencia y mucho debug paso a paso. A ver si luego más tarde tengo un rato para darle otra vuelta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas