복붙노트

[SPRING] 페이지 간 모델 데이터 유지 관리 (Spring 3 MVC)

SPRING

페이지 간 모델 데이터 유지 관리 (Spring 3 MVC)

Spring에서 연락처 추가 프로세스가 여러 페이지에 걸쳐 있습니다. 첫 페이지에는 텍스트 입력이 필요하고 두 번째 페이지에는 이미지 입력이 표시되고 초안 표시와 함께 세 번째가 표시됩니다.

첫 페이지

@RequestMapping("/addContact")
public String registerContact(@ModelAttribute Contact contact) {
 return "addContact";
}
@RequestMapping("/addContact")

두 번째 페이지

@RequestMapping("/addImages")
public String registerImages(@Valid Contact contact, BindingResult result) {
 return "addImages";
}

페이지간에 연락처 모델 데이터를 유지 관리하여 사용자가 페이지간에 다시 이동하거나 거품을 낼 수있는 옵션을 제공하려면 어떻게해야합니까?

해결법

  1. ==============================

    1.모든 페이지를 처리하는 단일 컨트롤러가있는 경우 @SessionAttributes를 사용하여 세션의 요청 간 연락처를 저장할 수 있습니다. 마지막 페이지 후 SessionStatus를 사용하여 @SessionAttribtues 사용이 완료되었음을 표시합니다 (정리 용).

    모든 페이지를 처리하는 단일 컨트롤러가있는 경우 @SessionAttributes를 사용하여 세션의 요청 간 연락처를 저장할 수 있습니다. 마지막 페이지 후 SessionStatus를 사용하여 @SessionAttribtues 사용이 완료되었음을 표시합니다 (정리 용).

    @Controller
    @SessionAttributes("contact")
    public AddContactController {
    
        @ModelAttribute
        public Contact contact() {
            return new Contact();
        }
    
        @RequestMapping("/addContact")
        public String registerContact(@ModelAttribute Contact contact) {
            return "addContact";
        }
    
        @RequestMapping("/addImages")
        public String registerImages(@Valid @ModelAttribute Contact contact, BindingResult result) {
            return "addImages";
        }
    
        @RequestMapping("/save")    
        public String firstPage(@ModelAttribute Contact contact, SessionStatus status) {
          status.complete();
        }
    }
    
  2. ==============================

    2.이것은 하나의 제한 사항이있는 @SessionAttributes를 사용하여 수행 할 수 있습니다. 이것은 전적으로 귀하의 디자인에 달려 있습니다.

    이것은 하나의 제한 사항이있는 @SessionAttributes를 사용하여 수행 할 수 있습니다. 이것은 전적으로 귀하의 디자인에 달려 있습니다.

    또는 아래 언급 된 의사 코드를 사용할 수 있습니다. 여기서 세션 API를 확인하십시오.

    Use HttpServletRequest in your RequestMapping to get request.
    
    
    HttpSession session = request.getSession();//make an 
    
    session.setAttribute("user", userDTO);
    
    
    try
    {
    HttpSession session=request.getSession(false);
    if(session!=null)
    {
    
    UserDTO userDTO = (UserDTO) session.getAttribute("user");
    

    }

    userDTO는 객체입니다.

    양식으로 돌아가는 방법

    이제 흐름에서 앞뒤로 이동하려면 정방향 및 역방향 링크를 만들고 세션을 사용하여 이미 저장된 값을 채워야합니다.

    더 구체적인 코드가 필요하면 알려주십시오.

  3. from https://stackoverflow.com/questions/18781439/maintain-model-data-between-pages-spring-3-mvc by cc-by-sa and MIT license