基本數(shù)據(jù)類型及對(duì)象類型作為參數(shù)

將內(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ù)只要有,就能賦值,無論次數(shù)),只要保證參數(shù)名稱和請(qǐng)求中傳遞的參數(shù)名相同,方法參數(shù)為引用類型(如String)而且請(qǐng)求參數(shù)沒有該屬性,則為null,如果是基本數(shù)據(jù)類型,沒有該屬性將會(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ù)沒有該值時(shí)出錯(cuò);同時(shí)具有required屬性,表示請(qǐng)求參數(shù)是否必須具有該屬性,設(shè)置為true沒有該參數(shù)則報(bào)異常,如果required設(shè)置為true,同時(shí)設(shè)置defaultValue,即使請(qǐng)求參數(shù)沒有該屬性值,也不會(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傳值方式:簡化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";
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容