2009-09-26 1 views
0

일부 추가 읽기 전용 필드를 사용하여 제출 한 후 jsp 페이지를 수정하고 싶습니다. 반복자와 조건을 사용했습니다. 나는 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; 
     } 

답변

1

몇 가지. 먼저 질문에 대답하십시오. 일반적으로 저장 후 사용자가 저장 한 후 페이지에서 "새로 고침"을 클릭하면 POST가 두 번 처리되지 않도록 다른 페이지로 리디렉션합니다. 귀하의 경우, 나는 id에서 프로파일을로드하고 JSP 페이지를 표시하는 다른 방법 인 아마도 show()로 리디렉션 할 것입니다. 리디렉션 URL은 "show? pid = $ {profileObj.profileId}와 같습니다.

프로필이라는 모델 개체가 있습니다. 요청 매개 변수를"catch "하기 위해 작업에 별도의 멤버 변수가 필요하지 않습니다. JSP 페이지 인 profileObj.profileId에서 필드 이름을 지정할 수 있으며 액션에 setProfileObj (Profile profileObj)가 있다고 가정하면 Struts2는 Profile 객체를 생성하고 일치하는 요청 매개 변수를 기반으로 올바른 속성을 채 웁니다. (날짜 생성기를 만들고 등록하여 Struts2가 날짜를 변환하는 방법을 사용자 정의 할 수 있습니다.)

그래서이 매개 변수를 POST하면 Struts는 값이 채워진 모델을 생성합니다. 내가 언급 한 것처럼 리디렉션 첫 번째 단락.

귀하는 귀하의 행동에 몇 가지 우려 사항이 있습니다. DAO 패턴을 사용하고자한다면, 당신은 모든 퍼시스턴스 코드 (Hibernate Sesssion, etc.)가 거기에 캡슐화되어 있어야합니다.