關于動態(tài)參數(shù)使用@PathVariable的解析
動態(tài)參數(shù)使用@PathVariable解析
現(xiàn)在有如下的一條超鏈接
<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請求中的動態(tài)參數(shù)。
在Controller層的代碼如下
public static final String URL_ARTICLE_READ = "article/readArticle/{articleId}"; ? ? /** ? ? ?* 去文章詳情頁面 ? ? ?* 根據(jù)URL路徑中指定的文章ID號,去獲取制定文章的內(nèi)容 ? ? ?* ? ? ?* @param articleId 指定的文章的ID號 ? ? ?* @return ? ? ? ? ?獲取此文章的數(shù)據(jù),并去文章詳情頁面 ? ? ?*/ ? ? @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 上了。
獲取路徑中的參數(shù)值@PathVariable中的value
本期講的是@PathVariable注解的具體使用。與@RequestParam的區(qū)別
- @PathVariable獲取URI地址中的參數(shù)值,需要結合URI模板映射
- @PathVariable會將數(shù)據(jù)放到模型中,界面可以通過el表達式獲取(即瀏覽器上面可以顯示出來),但是@RequestParam不能通過界面獲得
1.@PathVariable String name
加上@PathVariable就能夠獲取到瀏覽器中rul的參數(shù)值
@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 就要在參數(shù)里面加上@PathVariable 結果就變?yōu)?name=tom * ../test6/tom?name=kk 結果:name=tom 拿到的是URI路徑里面的值跟后面的沒有任何關系 * */ } }
2.@PathVariable(“username”) String name
當瀏覽器中的是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 } }
此時就不會報錯了
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
IDEA SpringBoot:Cannot resolve configuration&
這篇文章主要介紹了IDEA SpringBoot:Cannot resolve configuration property配置文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07使用mybatis的interceptor修改執(zhí)行sql以及傳入?yún)?shù)方式
這篇文章主要介紹了使用mybatis的interceptor修改執(zhí)行sql以及傳入?yún)?shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12springboot整合JSR303校驗功能實現(xiàn)代碼
這篇文章主要介紹了springboot整合JSR303校驗功能實現(xiàn),JSR303校驗方法有統(tǒng)一校驗的需求,統(tǒng)一校驗實現(xiàn)以及分組校驗,本文結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-01-01如何解決java.lang.ClassNotFoundException: com.mysql.jdbc.Dr
這篇文章主要介紹了如何解決java.lang.ClassNotFoundException: com.mysql.jdbc.Driver問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12關于SpringBoot中controller參數(shù)校驗的使用
本文主要介紹了關于SpringBoot中controller參數(shù)校驗的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01SpringBoot整合TomCat實現(xiàn)本地圖片服務器代碼解析
這篇文章主要介紹了SpringBoot整合TomCat實現(xiàn)本地圖片服務器代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08