我不知道我保存会话的方式是否正确。现在我用:
private Map<String, Object> session;
但是,当我修改更改时,它会保存在数据库中,但如果我再次咨询配置文件用户,它会向我显示修改前的配置文件。我用图片显示流程:
1-登录:是一个带有表格的jsp,如何使用行动登录] 在操作中对数据库进行查询以在我获得用户时检查用户我将对象传递给地图:
2-显示用户个人资料:在欢迎页面上有一个菜单[用户个人资料,日程安排,....我点击用户个人资料选项[jsp with a href how to action call action action perfilUsuario.action]并显示jsp中的用户配置文件:
3-修改用户配置文件:在用户配置文件选项中有修改我单击[调用修改操作]:
4-数据库检查:我检查数据库,它没问题:
5-我再次检查用户并且没有任何改变:
但是当我退出并登录时,配置文件中的更改已完成。 我问的是,我是否在行动中做错了什么&#34; modificar&#34;
Modificar.java 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");
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());
return SUCCESS;
}
}