1. 程式人生 > >利用@RequestParam和@PathVariable註解功能來接收前端傳過來的值

利用@RequestParam和@PathVariable註解功能來接收前端傳過來的值

超連結方式傳值

如果是超連結傳值,我們後臺則使用@PathVariable( )註解來接收前端傳過來的值。

程式碼演示

  1. 導包。
  2. 在建立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>
  1. 在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>
  1. 在Webcontext資料夾下手動建立一個index.jsp(當程式開始執行的時候會預設先執行index.jsp)
//寫在<body>標籤裡面
<h1><a href="lei/method/200">點選我跳轉到你喜歡的頁面喔</a></h1>
  1. 在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";
	}
}
  1. 在Webcontext檔案下建立一個JSP的Folder檔案,並在JSP檔案下建立jieguo.jsp,將後臺拿到的值傳給前端頁面。
<h1>${key}</h1>//EL表示式

表單提交方式傳值

如果是用表單提交方式傳值,我們後臺則用@RequestParam( )註解來接收前端穿過來的值。 注意:@RequestParam(“Test”)裡面的名字必須跟jsp頁面name中的名字一樣。

程式碼演示:

(表單提交方式傳值其它的步驟與超連結傳值到後臺的步驟雷同,只有第四步和第五步與超連結的步驟不一樣)

  1. 在index.jsp頁面中
<!--這裡action中的值與超連結中的href中的值差不多,只不過表單提交方式不在action中傳值-->
<!--根據action找到對映路徑,再通過submit將text中的值傳到後臺Controller中-->
<form action="lei/method">
	<input type="text" name="result"/>
	<input type="submit" value="提 交"/>
</form>
  1. 注意: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)將接收的值再返回到後臺的一個過程。