原創(chuàng)聲明:本文為作者原創(chuàng),未經(jīng)允許不得轉(zhuǎn)載,經(jīng)授權(quán)轉(zhuǎn)載需注明作者和出處
上章我們講到用@RequestBody注解接收參數(shù)和不用@RequestBody進(jìn)行了對(duì)比,發(fā)現(xiàn)這個(gè)這個(gè)注解注解到要接收的參數(shù)上就能接收json格式的參數(shù)。那么今天來(lái)具體說(shuō)說(shuō)接收參數(shù)這件事。
我們從前端接收參數(shù)有四種方式:
接收String:
@RequestMapping("/String")
public void StringTest(String name){
System.out.println(name);
}
如果我們?cè)L問(wèn)這個(gè)地址,并且隨便通過(guò)一種方式穿個(gè)參數(shù):
我們?cè)诳刂婆_(tái)就可以看到接收到的參數(shù)了:
接收int:
@RequestMapping("/int")
public void intTest(int age){
System.out.println(age);
}
同樣傳個(gè)參數(shù)試試:
也接收到了:
那么,我們看看如果在int類型傳入一個(gè)字符串:
這時(shí)候的結(jié)合是控制臺(tái)就不會(huì)打印內(nèi)容了。原因是沒(méi)有訪問(wèn)到地址。
當(dāng)我們傳入的是一個(gè)參數(shù),訪問(wèn)的時(shí)候,SpringMVC不僅會(huì)通過(guò)RequestMapping來(lái)匹配方法,同時(shí)還要根據(jù)參數(shù)類型來(lái)確定方法。因此在這我們沒(méi)有訪問(wèn)到要訪問(wèn)的方法。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0-b07</version>
<scope>provided</scope>
</dependency>
然后寫上代碼:@RequestMapping("/request")
public void request(HttpServletRequest request){
String name = (String) request.getParameter("name");
System.out.println(name);
}
有沒(méi)有發(fā)現(xiàn)和servlet幾乎一模一樣?反正之前servlet用的方法在這都能用,下去可以自行測(cè)試。package com.demo.param;
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
@RequestMapping("/obj")
public void obj(User user){
System.err.println(user.getName());
System.err.println(user.getAge());
}
可以看出我們的參數(shù)都打印出來(lái)了(雖然是紅的,但是沒(méi)影響~):
@RequestMapping("/restful/{name}")
public void restful(@PathVariable String name){
System.out.println(name);
}
@RequestMapping("/restful/{name}")
public void restful(@PathVariable("name") String aaa){
System.out.println(aaa);
}
具體就不演示了,來(lái)總結(jié)下每種方式的注意點(diǎn):另外附上源碼:https://github.com/YaoguaiDa/SpringMVC_Demo
由于開(kāi)發(fā)環(huán)境變了,所以我在pom build節(jié)點(diǎn)下聲明的maven使用jdk版本,本次開(kāi)始代碼都上傳github,下章抽出一章講git。