Jsp 如何在保存后重置我的保存页面?
我想在提交后用一些附加的只读字段修改我的jsp页面。我使用了迭代器和if条件。我在struts2工作。如何在保存后重置我的保存页面Jsp 如何在保存后重置我的保存页面?,jsp,struts2,Jsp,Struts2,我想在提交后用一些附加的只读字段修改我的jsp页面。我使用了迭代器和if条件。我在struts2工作。如何在保存后重置我的保存页面 public String savePerson(){ Session hSession = ActionManager.getHibernateSession(); profileObj.setProfileId(pid); Date doBirth = DateFunctions.toDate(dob);
public String savePerson(){
Session hSession = ActionManager.getHibernateSession();
profileObj.setProfileId(pid);
Date doBirth = DateFunctions.toDate(dob);
profileObj.setDob(doBirth);
try{
pid = ProfileDAO.getInstance().addProfils(hSession, profileObj);
addressObj.setProfileId(pid);
AddressDAO.getInstance().addAddress(hSession, addressObj);
setMessage("Succesfully saved.");
if (pid > 0){
hSession.clear();
resetProfile(pid);
//i want to include my jsp page with hidden fields additionally.
}
} catch (HibernateException hExc) {
setMessage("Unable to save.");
return ERROR;
} finally {
ActionManager.closeHibernateSession();
}
return SUCCESS;
}
所以有几件事。首先回答你的问题。通常,保存后,如果用户在保存后单击页面上的“刷新”,您会重定向到不同的页面,以防止该帖子被处理两次。在您的情况下,我将重定向到另一个方法,可能是show(),在这里您从id加载概要文件,然后显示JSP页面。重定向URL类似于“show?pid=${profileObj.profileId} 您有一个名为profile的模型对象。您的操作中不需要单独的成员变量来“捕获”请求参数。您只需在JSP页面profileObj.profileId中命名字段,并假设您有一个setProfileObj(profile profileObj)在您的操作中,Struts2将为您创建配置文件对象,并根据匹配的请求参数填充正确的属性。它甚至会对日期执行此操作!(您可以通过创建和注册自己的日期转换器自定义Struts2转换日期的方式) 因此,您发布这些参数,Struts使用填充的值创建您的模型。您使用DAO保存配置文件,然后像我在第一段中提到的那样重定向 在您的操作中还存在一些混合关注点。如果您要使用DAO模式,那么您应该将所有的持久性代码(HibernateSession等)封装在这里