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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring MVC学习路(三) 编写第一个demo

發布時間:2024/4/14 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC学习路(三) 编写第一个demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

新建包com.test里面新建Test.java文件

package?com.test;import?org.springframework.stereotype.Controller; import?org.springframework.web.bind.annotation.RequestMapping;@Controller public?class?Test?{@RequestMapping("test")?//表示訪問地址public?String?test1(){System.out.println("load");return?"demo"?;?} }

在上述視圖解析器中,如果Controller返回的是blog/index,那么通過視圖解析器解析之后的視圖就是/demo.jsp。

@Controller:用于標識是處理器類;

@RequestMapping:請求到處理器功能方法的映射規則;

@RequestParam:請求參數到處理器功能處理方法的方法參數上的綁定;

@ModelAttribute:請求參數到命令對象的綁定;

@SessionAttributes:用于聲明session級別存儲的屬性,放置在處理器類上,通常列出

模型屬性(如@ModelAttribute)對應的名稱,則這些屬性會透明的保存到session中;

@InitBinder:自定義數據綁定注冊支持,用于將請求參數轉換到命令對象屬性的對應類型;

更詳細的說明來源于:http://www.cnblogs.com/superjt/p/3309255.html

package?controller;import?javax.servlet.http.HttpServletRequest;import?org.springframework.stereotype.Controller; import?org.springframework.web.bind.annotation.RequestMapping; import?org.springframework.web.bind.annotation.RequestParam;import?entity.User;@Controller??//類似Struts的Action public?class?TestController?{@RequestMapping("test/login.do")??//?請求url地址映射,類似Struts的action-mappingpublic?String?testLogin(@RequestParam(value="username")String?username,?String?password,?HttpServletRequest?request)?{//?@RequestParam是指請求url地址映射中必須含有的參數(除非屬性required=false)//?@RequestParam可簡寫為:@RequestParam("username")if?(!"admin".equals(username)?||?!"admin".equals(password))?{return?"loginError";?//?跳轉頁面路徑(默認為轉發),該路徑不需要包含spring-servlet配置文件中配置的前綴和后綴}return?"loginSuccess";}@RequestMapping("/test/login2.do")public?ModelAndView?testLogin2(String?username,?String?password,?int?age){//?request和response不必非要出現在方法中,如果用不上的話可以去掉//?參數的名稱是與頁面控件的name相匹配,參數類型會自動被轉換if?(!"admin".equals(username)?||?!"admin".equals(password)?||?age?<?5)?{return?new?ModelAndView("loginError");?//?手動實例化ModelAndView完成跳轉頁面(轉發),效果等同于上面的方法返回字符串}return?new?ModelAndView(new?RedirectView("../index.jsp"));??//?采用重定向方式跳轉頁面//?重定向還有一種簡單寫法//?return?new?ModelAndView("redirect:../index.jsp");}@RequestMapping("/test/login3.do")public?ModelAndView?testLogin3(User?user)?{//?同樣支持參數為表單對象,類似于Struts的ActionForm,User不需要任何配置,直接寫即可String?username?=?user.getUsername();String?password?=?user.getPassword();int?age?=?user.getAge();if?(!"admin".equals(username)?||?!"admin".equals(password)?||?age?<?5)?{return?new?ModelAndView("loginError");}return?new?ModelAndView("loginSuccess");}@Resource(name?=?"loginService")??//?獲取applicationContext.xml中bean的id為loginService的,并注入private?LoginService?loginService;??//等價于spring傳統注入方式寫get和set方法,這樣的好處是簡潔工整,省去了不必要得代碼@RequestMapping("/test/login4.do")public?String?testLogin4(User?user)?{if?(loginService.login(user)?==?false)?{return?"loginError";}return?"loginSuccess";} }

以上4個方法示例,是一個Controller里含有不同的請求url,也可以采用一個url訪問,通過url參數來區分訪問不同的方法,代碼如下:

package?controller;import?org.springframework.stereotype.Controller; import?org.springframework.web.bind.annotation.RequestMapping; import?org.springframework.web.bind.annotation.RequestMethod;@Controller @RequestMapping("/test2/login.do")??//?指定唯一一個*.do請求關聯到該Controller public?class?TestController2?{@RequestMappingpublic?String?testLogin(String?username,?String?password,?int?age)?{//?如果不加任何參數,則在請求/test2/login.do時,便默認執行該方法if?(!"admin".equals(username)?||?!"admin".equals(password)?||?age?<?5)?{return?"loginError";}return?"loginSuccess";}@RequestMapping(params?=?"method=1",?method=RequestMethod.POST)public?String?testLogin2(String?username,?String?password)?{//?依據params的參數method的值來區分不同的調用方法//?可以指定頁面請求方式的類型,默認為get請求if?(!"admin".equals(username)?||?!"admin".equals(password))?{return?"loginError";}return?"loginSuccess";}@RequestMapping(params?=?"method=2")public?String?testLogin3(String?username,?String?password,?int?age)?{if?(!"admin".equals(username)?||?!"admin".equals(password)?||?age?<?5)?{return?"loginError";}return?"loginSuccess";} }

其實RequestMapping在Class上,可看做是父Request請求url,而RequestMapping在方法上的可看做是子Request請求url,父子請求url最終會拼起來與頁面請求url進行匹配,因此RequestMapping也可以這么寫:

package?controller;import?org.springframework.stereotype.Controller; import?org.springframework.web.bind.annotation.RequestMapping;@Controller @RequestMapping("/test3/*")??//?父request請求url public?class?TestController3?{@RequestMapping("login.do")??//?子request請求url,拼接后等價于/test3/login.dopublic?String?testLogin(String?username,?String?password,?int?age)?{if?(!"admin".equals(username)?||?!"admin".equals(password)?||?age?<?5)?{return?"loginError";}return?"loginSuccess";} }


轉載于:https://my.oschina.net/u/2538370/blog/537491

總結

以上是生活随笔為你收集整理的Spring MVC学习路(三) 编写第一个demo的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 一本色道久久综合亚洲精品按摩 | 日韩精品中文字幕一区二区 | 狂躁美女大bbbbbb黑人 | 国产99久久九九精品无码免费 | 国产a一级片 | 丰满放荡岳乱妇91ww | 在线观看免费 | 伊人av在线播放 | 殴美一级视频 | 中文字幕在线观看视频网站 | 日韩欧美在线观看一区二区 | 蜜臀久久精品久久久久久酒店 | 青青视频在线免费观看 | 二区三区在线观看 | 欧美天天性 | 日本一区二区三区中文字幕 | 日韩有码在线视频 | 呦呦视频在线观看 | 亚洲色图一区二区三区 | 操亚洲| 欧美在线视频免费播放 | 樱桃av | 日韩高清在线观看 | 欧美自偷自拍 | 久操操 | 黑人操少妇 | 日韩精品视频播放 | 伊人精品视频在线观看 | 欧美性网站 | 91在线免费网站 | 久久密 | 91麻豆精品国产91久久久无需广告 | 国产精品美女久久久网av | 免费超爽大片黄 | 国产人人插 | 神马午夜伦 | 男人操女人下面视频 | 免费a在线观看 | 国产精品麻豆果冻传媒在线播放 | 村上凉子av| 国产91福利 | 久久久久久a| 黄色片网站在线观看 | 国产精品久久久久久69 | 国产麻豆影视 | 一本久道久久综合 | 欧美乱大交xxxxx潮喷l头像 | 亚洲免费福利视频 | 久久无码国产视频 | 日本猛少妇色xxxxx猛叫 | 国产自产精品 | 99久久免费看精品国产一区 | 国产欧美日韩一区二区三区 | 欧美 亚洲 另类 偷偷 自拍 | 大学生高潮无套内谢视频 | 日韩国产网站 | 亚欧洲精品在线视频 | 国产日韩一区二区在线观看 | 免费吸乳羞羞网站视频 | 国产亚洲久一区二区 | 久久阁| 免费的黄色一级片 | 成人在线视频播放 | 插插操操| 亚洲国产精品suv | 玉丸(双性调教) | cekc老妇女cea0 | fc2ppv在线播放 | av东方在线| 亚洲AV乱码国产精品观看麻豆 | 亚洲色成人一区二区三区小说 | 成人小视频免费观看 | 91免费在线视频观看 | 亚洲欧美综合精品久久成人 | 成人无码www在线看免费 | 一级黄色毛毛片 | 噜噜色成人 | 欧美劲爆第一页 | 亚洲黄a| 美女光屁屁露胸胸 | 欧美日韩亚洲在线观看 | 韩国三级中文字幕hd浴缸戏 | 国产精品久久久一区二区三区 | a免费看| 亚洲一区二区三区视频 | 成人欧美一区二区三区黑人孕妇 | 精品无码久久久久国产 | 免费成人在线看 | 国产色在线,com | 99热国产 | 国产农村av| 姑娘第5集高清在线观看 | 亚洲欧美国产高清 | 国产青青草在线 | 深爱激情综合 | 制服 丝袜 激情 欧洲 亚洲 | 国产在线1区 | 久久久极品 | 激情五月婷婷丁香 |