將內(nèi)容寫到方法參數(shù)中呼渣,SpringMVC只要有這個(gè)內(nèi)容棘伴,便會(huì)自動(dòng)注入(下述情況get/post均可)
如前端傳遞name及age參數(shù):
@Controller
public class DemoController {
@RequestMapping("demo")
public String demo(String name, int age, Person person) {
return "main.jsp";
}
}
其中person具有name及age屬性,同時(shí)具有相應(yīng)屬性的get屁置、set方法焊夸,則SpringMVC會(huì)將name、age以及person中的name蓝角、age進(jìn)行賦值阱穗,(SpringMVC能夠?qū)︻愋瓦M(jìn)行自動(dòng)轉(zhuǎn)換,同時(shí)只要SpringMVC接收參數(shù)只要有帅容,就能賦值颇象,無(wú)論次數(shù)),只要保證參數(shù)名稱和請(qǐng)求中傳遞的參數(shù)名相同并徘,方法參數(shù)為引用類型(如String)而且請(qǐng)求參數(shù)沒(méi)有該屬性遣钳,則為null,如果是基本數(shù)據(jù)類型麦乞,沒(méi)有該屬性將會(huì)報(bào)錯(cuò)
如果參數(shù)名不一致蕴茴,可以使用@RequestParam注解:(如果前端傳遞數(shù)據(jù)為name1,age1)
@Controller
public class DemoController {
@RequestMapping("demo")
public String demo(@RequestParams('name1")String name,@RequestParam("age1") int age) {
return "main.jsp";
}
}
基本數(shù)據(jù)類型可以使用requestParam的defaultValue屬性,設(shè)置默認(rèn)值姐直,防止請(qǐng)求參數(shù)沒(méi)有該值時(shí)出錯(cuò)倦淀;同時(shí)具有required屬性,表示請(qǐng)求參數(shù)是否必須具有該屬性声畏,設(shè)置為true沒(méi)有該參數(shù)則報(bào)異常撞叽,如果required設(shè)置為true,同時(shí)設(shè)置defaultValue插龄,即使請(qǐng)求參數(shù)沒(méi)有該屬性值愿棋,也不會(huì)報(bào)錯(cuò),將使用默認(rèn)值
如果前端有一個(gè)多選框均牢,name為hover糠雨,同時(shí)選中多個(gè)(傳遞多個(gè)同名參數(shù)),可以使用List或者數(shù)組接收:
@Controller
public class DemoController {
@RequestMapping("demo")
public String demo(@RequestParams('hover")List<Stirng> list) {
return "main.jsp";
}
}
請(qǐng)求參數(shù)可以設(shè)置為peo.name及peo.age為下面的Demo對(duì)象傳值
public class Demo {
private People peo;
public People getPeo() {
return peo;
}
public void setPeo(People peo) {
this.peo = peo;
}
}
@Controller
public class DemoController {
@RequestMapping("demo")
public String demo(Demo demo) {
return "main.jsp";
}
}
請(qǐng)求參數(shù)可以設(shè)置為peo[0].name徘跪,peo[0].age及peo[1].name甘邀,peo[1].age為下面的Demo對(duì)象傳值
public class Demo {
private List<People> peo;
public List<People> getPeo() {
return peo;
}
public void setPeo(List<People> peo) {
this.peo = peo;
}
}
restful傳值方式:簡(jiǎn)化jsp中參數(shù)編寫格式
請(qǐng)求url:demo/123/abc
@Controller
public class DemoController {
// 使用PathVariable注解或者同名參數(shù)均可
@RequestMapping("demo/{id1}/{name1}")
public String demo(@PathVariable("id1")int id,@PathVariable("name1")String name) {
// 注意main.jsp是相對(duì)路徑琅攘,此時(shí)跳轉(zhuǎn)路徑將為/demo/123/main.jsp
return "main.jsp";
}
}