이 기사의 주요 연구는 다음과 같이 Spring Learning @sessionattributes의 관련 내용입니다.
기본적으로 ModelMap의 속성 범위는 요청 수준, 즉 요청이 완료되면 ModelMap의 속성이 파괴됩니다. 여러 요청에서 ModelMap에서 속성을 공유하려면 요청에 따라 ModelMap의 속성에 액세스 할 수 있도록 속성을 세션으로 전송해야합니다.
Spring을 사용하면 다음 요청 된 속성에 해당하는 ModelMap의 속성 목록에서 이러한 속성에 액세스 할 수 있도록 ModelMAP의 어떤 속성을 세션으로 전송 해야하는지 선택적으로 지정할 수 있습니다. 이 기능은 클래스 정의에서 @SessionAttributes 주석에 레이블을 지정하여 구현됩니다.
모델 객체의 특정 속성 만들기 세션 범위 스코프가 있습니다.
package com.baobaotao.web;… import org.springframework.ui.modelmap; import org.springframework.web.bind.annotation.sessionattributes; @controller @requestmapping ( "/bbtforum.do") @sessionattributes ( "Furruser") // that the at at at the that the that the that the that the that the that the that that the at at that the that that that that that that that that that that that that that that that that that that that the sess 이 속성이 공개 클래스 bbtforumcontroller에 액세스 할 수 있도록 속성 목록 {…… @requestmapping (params = "method = listboardtopic") public string listboardtopic (@requestparam ( "id") int topicid, 사용자 사용자, ModelMap Model) {bbtforumservice.getboardtopics (topic.out.println); " +" +. topicId); system.out.println ( "user :" + user); model.adtatribute ( "Curruser", User); // addd a a a a a a a modelmap return "listtopic";}} 우리는 속성이 Curruser 인 ②에 ModelMap 속성을 추가했으며 ①에 modelmap에 Curruser라는 속성을 @SessionAttributes 주석을 통해 세션에 배치합니다. 따라서 Listboardtopic () 요청에 해당하는 JSP보기 페이지에서 request.getAttribute(“currUser”) 및 session.getAttribute(“currUser”) 를 통해 사용자 객체를 얻을 수있을뿐만 아니라 다음 요청에 해당하는 JSP보기 페이지에서 session.getAttribute(“currUser”) 또는 ModelMap#get(“currUser”) 통해이 속성에 액세스 할 수 있습니다.
여기서는 모델 맵의 속성 만 세션에 넣습니다. 실제로 @SessionAttributes 사용하면 여러 속성을 지정할 수 있습니다. @SessionAttributes({“attr1”,”attr2”}) 와 같은 문자열 배열을 통해 여러 속성을 지정할 수 있습니다. 또한 ,@SessionAttributes @SessionAttributes(types = User.class) 와 같은 속성 유형을 통해 세션을 할 모델 맵 속성을 지정할 수 있으며, 여러 클래스가 @SessionAttributes(types = {User.class,Dept.class}) 와 같은 @SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”}) 클래스를 지정할 수 있으며, 속성 형식 및 속성 형식을 사용할 수 있습니다. @SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”}) .
세션 속성에 액세스 해야하는 컨트롤러에 @SessionAttributes 추가 한 다음 작업에 필요한 사용자 매개 변수에 @ModelAttribute 추가하고이 둘의 속성 이름이 일관되도록 할 수 있습니다. SpringMVC는 @SessionAttributes 에 의해 정의 된 속성을 ModelMap 객체에 자동으로 주입합니다. 액션 매개 변수 목록을 설정할 때 ModelMap으로 이동하여 이러한 객체를 가져 와서 매개 변수 목록에 추가하십시오. setComplete() 메소드의 SessionStatus 메소드를 호출하지 않는 한이 개체는 세션에 보관되어 세션 정보 공유를 실현합니다.
@controller @sessionattributes ( "currentUser") </span> public class GreetingController {@requestmapping public void Hello (@ModelAttribute ( "currentUser") 사용자) {// user.sayHello ()}}위의 것은 스프링 학습의 @sessionattributes 인스턴스 분석에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!