2009-09-26 6 views
0

Je veux modifier ma page jsp après la soumission avec quelques champs additionnels en lecture seule. J'ai utilisé des itérateurs et si les conditions. Je travaille dans Struts2. Comment réinitialiser ma page de sauvegarde après l'enregistrement?Comment réinitialiser ma page de sauvegarde après l'enregistrement?

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; 
     } 

Répondre

1

Donc, quelques petites choses. D'abord pour répondre à votre question. Généralement, après une sauvegarde, vous faites une redirection vers une autre page pour éviter que le POST ne soit traité deux fois si l'utilisateur clique sur "Actualiser" sur la page après l'enregistrement. Dans votre cas, je redirigerais vers une méthode différente, peut-être show() où vous chargez le profil à partir de l'ID puis affichez la page JSP. L'URL de redirection est quelque chose comme "show? Pid = $ {profileObj.profileId}

Vous avez un objet modèle appelé profil Vous n'avez pas besoin de variables membres distinctes dans votre action pour" attraper "les paramètres de la requête. Vous pouvez simplement nommer votre champ dans la page JSP profileObj.profileId et en supposant que vous ayez un setProfileObj (Profile profileObj) dans votre action, Struts2 créera votre objet Profile pour vous et remplira les bonnes propriétés en fonction des paramètres de requête correspondants. ceci pour les dates! (Vous pouvez customiser comment Struts2 convertit des dates en créant et en enregistrant votre propre convertisseur de date)

Alors vous POST ces paramètres et Struts crée votre modèle avec les valeurs peuplées Vous utilisez votre DAO un profil d'enregistrement et ensuite rediriger comme je l'ai mentionné dans le premier paragraphe.

Vous avez également un mélange de préoccupations dans votre action. Si vous allez utiliser le pattern DAO, alors vous devriez vraiment avoir tout votre code de persistance (Hibernate Sesssion, etc) encapsulé ici.

Questions connexes