利用@RequestParam和@PathVariable註解功能來接收前端傳過來的值
阿新 • • 發佈:2018-12-12
超連結方式傳值
如果是超連結傳值,我們後臺則使用@PathVariable( )註解來接收前端傳過來的值。
程式碼演示
- 導包。
- 在建立web工程的時候建立一個web.xml配置檔案。在建立web工程的時候自動一個web.xml並配置檔案(在導包之後alt+/,選擇Dispatcherservlet)。
<servle<servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern><!--/ 代表所有--> </servlet-mapping>
- 在WEB_INF檔案下建立一個 -servlet.xml的配置檔案(注意:這裡的配置檔名必須和web.xml中servlet-clas中的名字保持一致)。
<!-- 開啟註解功能,並掃描指定包 --> <context:component-scan base-package="com.zhiyuan.url"></context:component-scan> <!-- 配置檢視資源解析器 --> <bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/JSP/"></property> <!--prefix是字首的意思,後面的值是在Webcontext下建立Folder是給它定義的檔名--> <property name="suffix" value=".jsp"></property> <!--suffix的意思是字尾,value中的值意思是在JSP檔案中找到以.jsp為字尾名的jsp頁面--> </bean>
- 在Webcontext資料夾下手動建立一個index.jsp(當程式開始執行的時候會預設先執行index.jsp)
//寫在<body>標籤裡面
<h1><a href="lei/method/200">點選我跳轉到你喜歡的頁面喔</a></h1>
- 在src下面新建立一個炸藥包為com.zhiyuan.url,在炸藥包裡面再建立一個類,類名為Uuu(類名的首字母必須大寫)。
package com.zhiyuan.url; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @Controller//代表我是一個控制器 @RequestMapping("lei")//代表請求對映路徑 public class Url { @RequestMapping("method/{va}")//代表請求對映路徑並給值開闢一個空間 public String meth(@PathVariable("va") int result,ModelMap mode){ //這裡最後將值傳給result了 mode.addAttribute("key",result);//給mode新增一個值 return "ko"; } }
- 在Webcontext檔案下建立一個JSP的Folder檔案,並在JSP檔案下建立jieguo.jsp,將後臺拿到的值傳給前端頁面。
<h1>${key}</h1>//EL表示式
表單提交方式傳值
如果是用表單提交方式傳值,我們後臺則用@RequestParam( )註解來接收前端穿過來的值。 注意:@RequestParam(“Test”)裡面的名字必須跟jsp頁面name中的名字一樣。
程式碼演示:
(表單提交方式傳值其它的步驟與超連結傳值到後臺的步驟雷同,只有第四步和第五步與超連結的步驟不一樣)
- 在index.jsp頁面中
<!--這裡action中的值與超連結中的href中的值差不多,只不過表單提交方式不在action中傳值-->
<!--根據action找到對映路徑,再通過submit將text中的值傳到後臺Controller中-->
<form action="lei/method">
<input type="text" name="result"/>
<input type="submit" value="提 交"/>
</form>
- 注意:jsp頁面中的表單中的name中的值,必須跟後臺@RequesstParam(" ")括號裡面的值保持一致。 package com.zhiyuan.url;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller//代表我是一個控制器
@RequestMapping("lei")//代表請求對映路徑
public class Url {
@RequestMapping("method")//代表請求對映路徑並給值開闢一個空間
public String meth(@RequestParam("result") int result,ModelMap mode){
//這裡最後將值傳給result了
mode.addAttribute("key",result);//給mode新增一個值
return "ko";
}
}
總結:這是通過超連結和表單提交方式傳值到後臺,利用註解功能來接收前端傳過來的值,再通過ModelMap(或者ModelAndView)將接收的值再返回到後臺的一個過程。