Sé que poner el título como una pregunta puede ser raro, pero es que no se como ponerlo. Antes de poner el post he buscado información y no he encontrado nada. Tengo una pequeña plicación web J2EE con Struts2 e Hibernate.
La parte que no me termina de funcionar es la de realizar una modificación, es decir, la modificación la realizo pero luego en la JSP veo los datos antiguos.
Esta es la JSP dónde está el formulario perfilModificar.jsp:
Código PHP:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<s:form action="modificar">
<s:textfield name="usuario.nombre" label="Nombre" value="%{#session['nombre']}"></s:textfield>
<s:textfield name="usuario.apellido" label="Apellido" value="%{#session['apellido']}"></s:textfield>
<s:textfield name="usuario.NIFCIF" label="NIF/CIF" value="%{#session['NIFCIF']}"></s:textfield>
<s:textfield name="usuario.email" label="E-mail" value="%{#session['email']}"></s:textfield>
<s:textfield name="usuario.telefono" label="Teléfono" value="%{#session['telefono']}"></s:textfield>
<s:textfield name="usuario.empresa" label="Empresa" value="%{#session['empresa']}"></s:textfield>
<s:textfield name="usuario.departamento" label="Departamento" value="%{#session['departamento']}"></s:textfield>
<s:hidden name="usuario.usuario" label="Usuario" value="%{#session['loginId']}"></s:hidden>
<s:hidden name="usuario.contrasena" label="Contrasena" value="%{#session['contrasena']}"></s:hidden>
<s:submit value="Aceptar" valign="middle"></s:submit>
</s:form>
</body>
</html>
Código PHP:
package modificar.action;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.text.WordUtils;
import registrar.model.Usuario;
import com.opensymphony.xwork2.ActionSupport;
import utils.Traspasar;
public class Modificar extends ActionSupport {
private static final long serialVersionUID = 1L;
private Usuario usuario;
private Map<String, Object> session;
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public Map<String, Object> getSession() {
return session;
}
public void setSession(Map<String, Object> session) {
this.session = session;
}
@Override
public String execute() {
session = new HashMap<String, Object>();
// iria la parte de datos con hibernate
System.out.println("Se hace el traspaso de datos a mySQL");
//Datos que se van a traspasar
System.out.println("Datos que se van a traspasar a BD");
System.out.println(usuario.getUsuario());
System.out.println(usuario.getContrasena());
System.out.println(usuario.getNombre());
System.out.println(usuario.getApellido());
System.out.println(usuario.getNIFCIF());
System.out.println(usuario.getEmail());
System.out.println(usuario.getTelefono());
System.out.println(usuario.getEmpresa());
System.out.println(usuario.getDepartamento());
Traspasar.datos2(usuario.getNombre(), usuario.getApellido(),
usuario.getNIFCIF(), usuario.getEmail(), usuario.getTelefono(),
usuario.getEmpresa(), usuario.getDepartamento(),
usuario.getUsuario(), usuario.getContrasena());
session.put("loginId", usuario.getUsuario());
session.put("contrasena",usuario.getContrasena());
session.put("nombre", usuario.getNombre());
session.put("apellido", usuario.getApellido());
session.put("NIFCIF", usuario.getNIFCIF());
session.put("email", usuario.getEmail());
session.put("telefono", usuario.getTelefono());
session.put("empresa", usuario.getEmpresa());
session.put("departamento", usuario.getDepartamento());
//Datos que se hay en el map
System.out.println("");
System.out.println("Datos que hay en el map");
System.out.println(session.get("loginId"));
System.out.println(session.get("contrasena"));
System.out.println(session.get("nombre"));
System.out.println(session.get("apellido"));
System.out.println(session.get("NIFCIF"));
System.out.println(session.get("email"));
System.out.println(session.get("telefono"));
System.out.println(session.get("empresa"));
System.out.println(session.get("departamento"));
return SUCCESS;
}
public void validate() {
boolean NIF=false, CIF=false;
/*Validació del nom*/
if ((usuario.getNombre().length() == 0) || ( usuario.getNombre() == "" )) {
addFieldError("usuario.nombre", "Es un dato obligatorio.");
} else if (utils.ValidationEx.validarNombre(WordUtils.capitalize(usuario.getNombre())) == false) {
addFieldError( "usuario.nombre","Formato de nombre incorrecto." );
}
/*Validació del primer cognom*/
if ((usuario.getApellido().length() == 0) || ( usuario.getApellido() == "" )) {
addFieldError("usuario.apellido", "Es un dato obligatorio.");
} else if (utils.ValidationEx.validarApellido(WordUtils.capitalize(usuario.getApellido())) == false) {
addFieldError( "usuario.apellido","Formato de apellido incorrecto." );
}
/*Validacio del NIF/CIF*/
if ((usuario.getNIFCIF().length() == 0) || ( usuario.getNIFCIF() == "" )) {
addFieldError("usuario.NIFCIF", "Es un dato obligatorio.");
} else if (Character.isDigit(usuario.getNIFCIF().charAt(0)) == true) {
NIF = true;
//validar NIF
if(utils.ValidationEx.validarNIF(usuario.getNIFCIF()) == false) {
addFieldError( "usuario.NIFCIF","Formato de NIF incorrecto." );
}
} else {
//validar CIF
CIF = true;
if(utils.ValidationEx.validarCIF(usuario.getNIFCIF()) == false) {
addFieldError( "usuario.NIFCIF","Formato de CIF incorrecto." );
}
}
/*Validació del Email*/
if (( usuario.getEmail().length() == 0 ) || ( usuario.getEmail() == "" )) {
addFieldError( "usuario.email","Es un dato obligatorio." );
} else if (utils.ValidationEx.validarEmail(usuario.getEmail()) == false) {
addFieldError( "usuario.email","Formato de correo electrónico incorrecto." );
}
/*Validació del teléfon*/
if (( usuario.getTelefono().length() == 0 ) || ( usuario.getTelefono() == "" )){
addFieldError( "usuario.telefono","Es un dato obligatorio." );
} else if (utils.ValidationEx.validarTelefono(usuario.getTelefono()) == false) {
addFieldError( "usuario.telefono","Formato de teléfono incorrecto." );
}
//Validació empresa
if ((NIF==false) && (CIF==true)) {
addFieldError( "usuario.empresa","Es un dato obligatorio introdujo un CIF." );
}
}
}
Código PHP:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<link type="text/css" href="Styles/perfil.css" media="screen"
rel="stylesheet">
<script type="text/javascript" src="scripts/menuUsuario.js"></script>
<script language="javascript">
window.onload=mostrarUsuario;
</script>
</head>
<body>
<table id="cabecera" border="1">
<tr>
<td>Nombre: <s:property value="%{#session['nombre']}" />
</tr>
<tr>
<td>Apellido: <s:property value="%{#session['apellido']}" />
</td>
</tr>
<tr>
<td>NIF/CIF: <s:property value="%{#session['NIFCIF']}" />
</td>
</tr>
<tr>
<td>E-mail: <s:property value="%{#session['email']}" />
</td>
</tr>
<tr>
<td>Teléfono: <s:property value="%{#session['telefono']}" />
</td>
</tr>
<tr>
<td>Empresa: <s:property value="%{#session['empresa']}" />
</td>
</tr>
<tr>
<td>Departamento: <s:property value="%{#session['departamento']}" />
</td>
</tr>
</table>
</body>
</html>