jquery
  • ajax
  • spring
  • model-view-controller
  • session
  • 2012-03-20 5 views 3 likes 
    3

    저는 Spring MVC를 처음 접했고, 제가 생각하기에 매우 간단하다고 생각되는 적절한 방법을 찾으려고합니다.스프링 MVC로 세션에 문자열을 저장하려면 어떻게해야합니까?

    var dataString = 'existingProject='+ $("#existingProject").val() + '&newProjName=' +  $("#newProjName").val(); 
    
        $.ajax({ 
         type: "POST", 
         url: "manageProjects.html", 
         data: dataString    
        }); 
    

    내가 사용자에 대한 세션이 사용자 설정 "프로젝트"를 설정하려면 :

    나는 간단한 jQuery를 AJAX 호출을 가지고있다. 이 AJAX 호출은 JS 파일의 자바 스크립트에서 나오고 Spring MVC 컨트롤러에 연결한다.

    컨트롤러가 이러한 변수를 사용하고 있지만이 데이터를 세션에서 특정하게 전달하기 위해 수행해야 할 작업을 잘 모릅니다.

    나는 6 가지 다른 옵션 (autowiring, xml 구성 및 cgl-nodep 라이브러리, HttpServlet 속성, @ModelAttribute, @SessionAttribute 등이 포함 된 빈 세션 주입 된 bean)에 대해 살펴 보았습니다.).

    @Component 
    @Scope("session") 
    public class UserSettings 
    

    ...하지만 빈은 세션에 잠겨되지되었습니다 세션 콩 범위 다음과 같은 정의에 가야했습니다. 내 컨트롤러에서 @Autowire를 사용했는데 세션간에 여전히 동일한 인스턴스 였으므로 분명히 망쳤습니다.

    나는 괴롭히는 문자열 하나를 저장하고 싶습니다. 이 ...이 할 수있는 101 레벨 쉬운 방법으로

    답변

    10
    @RequestMapping(value = "/request/mapping") 
    public ModelAndView methodName(HttpSession session,...){ 
    
    session.setAttribute("testVariable", "Test Values!!"); 
    } 
    

    또는

    @RequestMapping("/test") 
    @Controller 
    public class TestController { 
        @RequestMapping(method = RequestMethod.GET) 
        public String testMestod(HttpServletRequest request) 
        { 
         request.getSession().setAttribute("testVariable", "Test Values!!"); 
         return "testJsp"; 
        } 
    } 
    
    +0

    확인을 가지고,하지만 난 AJAX 호출에 시작할 때 어떻게 그 값을 설정합니까? 세션에서 속성을 설정하는 AJAX 호출을위한 "핸들러"메소드를 갖는 것이 적절한가요? 그렇다면 다른 모든 사람들이 그것을 다시 꺼냅니다. 이것이 표준 관행인가? – Raevik

    +0

    차이점이 없습니다. 패스 요청이나 세션을 Ajax 처리 메소드에 넣기 만하면됩니다. – fmucar

    +0

    첫 제안과 함께 HttpSession을 사용했습니다. AJAX 호출을 수락하고 세션에서 속성을 설정했습니다. 그런 다음 다른 컨트롤러 작업에서이 값을 필요로했습니다. 속성이 세션 전체에서 지속되는 것 같습니다. 새 탭을 열어 사이트를 다시 방문했고 첫 번째 탭의 설정이 내 브랜드 탭에 이미 설정되었습니다. – Raevik

    관련 문제