Основным исследованием в этой статье является соответствующее содержание Spring Learning @SessionAttributes, следующим образом.
По умолчанию объем атрибутов в ModelMap - это уровень запроса, то есть после завершения запроса атрибуты в ModelMap будут уничтожены. Если вы хотите поделиться свойствами в моделе в нескольких запросах, вы должны перенести их свойства на сеанс, чтобы можно было получить доступ к свойствам ModelMap по запросам.
Spring позволяет нам избирательно указать, какие свойства в модели должны быть переданы на сеанс, чтобы эти свойства также могли быть доступны в списке свойств модели, соответствующей следующему запрошенному атрибуту. Эта функция реализована путем маркировки аннотации @SessionAttributes в определении класса.
Сделайте конкретные свойства объектов модели
Пакет com.baobaotao.web;… импорт org.springframework.ui.modelmap; import org.springframework.web.bind.annotation.sessionattributes; @controller @Requestmapping («/bbtForum.do") @SessionAttributes ("Currusemapping") // at attribot at intempermaper in the int intribout. Список атрибутов сеанса, чтобы этот атрибут мог получить доступ к открытому классу BBTForumController {… @Requestmapping (params = "method = listboardtopic") public String listboardtopic (@requestparam ("id") int tomaid, пользователь пользователь, модель модели) {bbtforumservice.getboardtopics (tophyId); TOMAID); System.out.println ("user:" + user); model.addattribute ("curruser", user); // ②add свойство для модели Model return "listtopic";}} Мы добавили атрибут ModelMap в ②, атрибут которого является Curruser, и в ① мы размещаем атрибут с именем CurruSer в ModelMap в сеанс через аннотацию @SessionAttributes . Следовательно, мы можем не только получить объект пользователя через request.getAttribute(“currUser”) и session.getAttribute(“currUser”) на странице просмотра JSP, соответствующей запросу листиковой платы (), но также и получить доступ к этому атрибуту через session.getAttribute(“currUser”) или ModelMap#get(“currUser”) в странице представления JSP, соответствующего следующему запросу.
Здесь мы только помещаем атрибут модели в сеанс. На самом деле, @SessionAttributes позволяет указать несколько атрибутов. Вы можете указать несколько атрибутов через строковые массивы, такие как @SessionAttributes({“attr1”,”attr2”}) . Кроме того ,@SessionAttributes также может указывать атрибут модели, который будет сеансируется через тип атрибута, такой как @SessionAttributes(types = User.class) @SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”}) и, конечно, также можно указать несколько классов, такие как @SessionAttributes(types = {User.class,Dept.class}) и может использовать названия атрибута и атрибут. @SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”}) .
Мы можем добавить @SessionAttributes к контроллеру, которому необходимо получить доступ к свойству сеанса, а затем добавить @ModelAttribute к параметру пользователя, требуемый действием, и убедиться, что имена атрибутов этих двух являются последовательными. SpringMVC автоматически внедрит атрибуты, определенные @SessionAttributes в объект ModelMap. При настройке списка параметров действия перейдите в ModelMap, чтобы получить такой объект и добавить его в список параметров. Пока мы не называем метод setComplete() SessionStatus, этот объект будет храниться в сеансе, тем самым реализуя обмен информацией сеанса.
@Controller @SessionAttributes ("currentUser") </span> открытый класс GreetingController {@Requestmapping public void hello (@modelattribute ("currentUser") пользователь пользователя) {// user.sayhello ()}}}}}}}}}}}}}}}}}Выше приведено все содержание этой статьи об анализе экземпляра @sessionattributes экземпляра весеннего обучения. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!