您好,登錄后才能下訂單哦!
本篇內容主要講解“如何使用@PathVariable”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用@PathVariable”吧!
現在有如下的一條超鏈接
<a href="<c:url value=" rel="external nofollow" /actions/article/readArticle/${article.id}"/> " target="_blank">${article.title}</a>
這條超鏈接的特點就是在URL路徑中添加了EL表達式解析出來的id值。
因此,在SpringMVC的Controller層中,需要解析它,使用@PathVariable("articleId") Long articleId 來解析。
@PathVariable是專門用來解析URL請求中的動態參數。
public static final String URL_ARTICLE_READ = "article/readArticle/{articleId}"; /** * 去文章詳情頁面 * 根據URL路徑中指定的文章ID號,去獲取制定文章的內容 * * @param articleId 指定的文章的ID號 * @return 獲取此文章的數據,并去文章詳情頁面 */ @RequestMapping(value = {URL_ARTICLE_READ} ) public ModelAndView readArticle(@PathVariable("articleId") Long articleId){ LOGGER.info("enter article detail page, articleId = {}",articleId); final Article article = articleService.getArticleById(articleId); ... }
這樣,頁面上的${article.id}的值,就最終映射到了Java中的Long articleId 上了。
本期講的是@PathVariable注解的具體使用。與@RequestParam的區別
@PathVariable獲取URI地址中的參數值,需要結合URI模板映射
@PathVariable會將數據放到模型中,界面可以通過el表達式獲取(即瀏覽器上面可以顯示出來),但是@RequestParam不能通過界面獲得
加上@PathVariable就能夠獲取到瀏覽器中rul的參數值
@RequestMapping("/get_param") @Controller public class GetParamController { @RequestMapping("/test6/{name}") public String test6(@PathVariable String name) { System.out.println("GetParamController test6()..."); System.out.println("name="+name); return "test";//跳轉到test.jsp /* * ../test6/tom 結果:name=null 就要在參數里面加上@PathVariable 結果就變為:name=tom * ../test6/tom?name=kk 結果:name=tom 拿到的是URI路徑里面的值跟后面的沒有任何關系 * */ } }
當瀏覽器中的是username,而后臺要接收的是name
就會報錯,由于username和name不匹配
此時要加上value值,@PathVariable(“username”)
@RequestMapping("/get_param") @Controller public class GetParamController { @RequestMapping("/test7/{username}") //username與下面的name不一致,報錯,就需要加上@PathVariable("username") public String test7(@PathVariable("username") String name) {//name和username不一致時,用@PathVariable("username") System.out.println("GetParamController test7()..."); System.out.println("name="+name); return "test";//跳轉到test.jsp } }
此時就不會報錯了
到此,相信大家對“如何使用@PathVariable”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。