我在自己的小程序中用到了Spring+Struts2,今天发现了一个奇怪的现象,我的页面表单提交后,Action正常执行完Redirect到别的Action了,如果点击回来会发现Form里的值还在,用Debug标签查看,ValueStack中的值还是提交前的,最奇怪的是我换台机器,查看同样的地址时ValueStack里的值也有,Struts2难道不是为每个请求新建一个线程的吗?怎么会出现这种情况呀。我的Action是这样的:
public class eventAction extends ActionSupport {
private static final long serialVersionUID = 7637217205314893063L;
private IEventServices services;private Itevent event; private Integer departmentId; public Itevent getEvent() { return event; } public void setEvent(Itevent event) { this.event = event; } public Integer getDepartmentId() { return departmentId; } public void setDepartmentId(Integer departmentId) { this.departmentId = departmentId; } public String updateSave() { if (departmentId != null) { event.setDepartment(seServices.getDepartment(departmentId)); } else { event.setDepartment(null); } services.saveEvent(event); return SUCCESS; }