日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【Spring】SpringMVC 作用域传值的 4 种方式

發布時間:2024/2/28 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Spring】SpringMVC 作用域传值的 4 种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、四大作用域復習

2.1 page
2.1.1 在當前頁面不會重新實例化.

2.2 request
2.2.1 在一次請求中同一個對象,下次請求重新實例化一個request 對象.

2.3 session
2.3.1 一次會話.
2.3.2 只要客戶端Cookie 中傳遞的Jsessionid 不變,Session 不會重新實力化(不超過默認時間.)
2.3.3 實際有效時間:
2.3.3.1 瀏覽器關閉.Cookie 失效.
2.3.3.2 默認時間.在時間范圍內無任何交互.在tomcat 的web.xml 中配置

<session-config><session-timeout>30</session-timeout> </session-config>

2.4 application
2.4.1 只有在tomcat 啟動項目時菜實例化.關閉 tomcat 時銷毀application

二、SpringMVC 作用域傳值的幾種方式

1. 使用原生 Servlet
1.1 在 HanlderMethod 參數中添加作用域對象

Java示例

@Controller public class DemoHttpRequest {@RequestMapping("request")public String demo1(HttpServletRequest request, HttpSession httpSession) {// request 作用域request.setAttribute("req", "req的值");// session 作用域HttpSession session = request.getSession();session.setAttribute("session", "session的值");httpSession.setAttribute("httpSession", "httpSession的值");// application 作用域ServletContext application = request.getServletContext();application.setAttribute("application", "application的值");return "requestpage.jsp";} }

JSP示例

<h3>全名稱調用方式:</h3> request:${requestScope.req}<br/> session:${sessionScope.session}<br/> httpSession:${sessionScope.httpSession}<br/> application:${applicationScope.application}<br/><hr> <h3>簡化名稱調用方式:</h3> request:${req}<br/> session:${session}<br/> httpSession:${httpSession}<br/> application:${application}<br/>

2. 使用 Map 集合
2.1 把map 中內容放在 request 作用域中
2.2 spring 會對 map 集合通過 BindingAwareModelMap 進行實例化

Java示例

@RequestMapping(value = "demo2")public String demo2(@RequestParam(value = "name", defaultValue = "游客") String name1,@RequestParam(value = "age", defaultValue = "66") int age1) {// 此處使用注解添加默認值,避免因int類型無法賦值為 Null 導致的異常;// 或者還有一種方式是使用 Integer 對象,可以賦值為 Null// required: true 和 defaultValue 不要一起使用,否則始終具有默認值,required 檢驗恒通過,沒有意義。System.out.println("In DemoController demo2, name1 = " + name1 + ", age1 = " + age1);return "main2.jsp";}

JSP示例

map:${map}

3. 使用 SpringMVC 中 Model 接口
3.1 把內容最終放入到 request 作用域中.

Java示例

// 使用model,把內容最終放入到request作用域中。好處是不用寫request。@RequestMapping("request2")public String demo3(Model model) {model.addAttribute("model", "model的值");return "requestpage.jsp";}

JSP示例

model:${model}

4.使用 SpringMVC 中 ModelAndView 類

Java示例

@RequestMapping("request3")public ModelAndView demo4() {// 參數,跳轉視圖ModelAndView modelAndView = new ModelAndView("requestpage.jsp");modelAndView.addObject("modelAndView", "modelAndView的值");return modelAndView;}

JSP示例

ModelAndView:${modelAndView}

總結

以上是生活随笔為你收集整理的【Spring】SpringMVC 作用域传值的 4 种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。