Jsp 如何在保存后重置我的保存页面?

Jsp 如何在保存后重置我的保存页面?,jsp,struts2,Jsp,Struts2,我想在提交后用一些附加的只读字段修改我的jsp页面。我使用了迭代器和if条件。我在struts2工作。如何在保存后重置我的保存页面 public String savePerson(){ Session hSession = ActionManager.getHibernateSession(); profileObj.setProfileId(pid); Date doBirth = DateFunctions.toDate(dob);

我想在提交后用一些附加的只读字段修改我的jsp页面。我使用了迭代器和if条件。我在struts2工作。如何在保存后重置我的保存页面

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等)封装在这里