亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Spring MVC常用客戶端參數(shù)接收方式

laoLiueizo / 1569人閱讀

摘要:常用客戶端參數(shù)接收方式在結(jié)構(gòu)中,控制器組件主要的功能就是接收請(qǐng)求處理請(qǐng)求生成響應(yīng),接收客戶端傳來(lái)的請(qǐng)求參數(shù)的往往是控制器要做的第一件事。當(dāng)使用注解時(shí),設(shè)置客戶端傳遞的請(qǐng)求參數(shù)和的值相匹配后,參數(shù)名可以和請(qǐng)求參數(shù)不匹配。

Spring MVC常用客戶端參數(shù)接收方式

在MVC結(jié)構(gòu)中,控制器組件主要的功能就是接收請(qǐng)求、處理請(qǐng)求、生成響應(yīng),接收客戶端傳來(lái)的請(qǐng)求參數(shù)的往往是控制器要做的第一件事。

Book實(shí)體類Book.java

public class Book {
    private Integer bookId;
    private String author;
    //生成Get、Set方法,此處省略
}
一、直接用參數(shù)名匹配請(qǐng)求參數(shù)

客戶端界面(表單):

controller層:

@Controller
public class ParamPassDemo {
    @RequestMapping(value="/queryString")
    public String test1(Integer bookId, String author) {
        System.out.println("bookId="+bookId+", author="+author);
        //此處返回的地址為(/WEB-INF/jsp/index.jsp)
        return "index";
    }
}

注意:這里@RequestMapping中只有value屬性,value可以省略不寫(xiě)。

客戶端輸入:123,Rose

控制臺(tái)輸出:bookId=123, author=Rose

二、通過(guò)@RequestParam注解來(lái)指定請(qǐng)求參數(shù)的name

客戶端界面(表單):

如果表單中的字段與方法中的參數(shù)名一致,可以不需要@RequestParam,Spring會(huì)自動(dòng)處理。

controller層:

@Controller
public class ParamPassDemo {
    @RequestMapping("/queryStringWithSpecName")
    public String test2(@RequestParam(value="bookId",required=false) Integer id, @RequestParam("author") String name) {
        System.out.println("bookId="+id+", author="+name);
        return "index";
    }
}

注意:這里@RequestParam中有兩個(gè)屬性,value不能省略。

@RequestParam將請(qǐng)求地址中的參數(shù)傳遞給目標(biāo)方法,在處理方法入?yún)⑻幨褂每梢园颜?qǐng)求參數(shù)傳遞給請(qǐng)求方法。

當(dāng)使用@RequestParam注解時(shí),設(shè)置客戶端傳遞的請(qǐng)求參數(shù)name="bookId"和@RequestParam的value值value="bookId"相匹配后,參數(shù)名int id可以和請(qǐng)求參數(shù)不匹配。

客戶端輸入:321, Jack

控制臺(tái)輸出:bookId=321, author=Jack

客戶端界面(ajax):


controller層:(不變)

客戶端: data:{"author" : "Jack"}

控制臺(tái)輸出: bookId=null, author=Jack(如果bookId為int類型,控制臺(tái)會(huì)拋出異常)

客戶端: data:{"bookId" : 1}

控制臺(tái)輸出: org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter "author" is not present

通過(guò)required設(shè)置可選參數(shù),requiredfalse時(shí)表示可以不帶參數(shù),為true時(shí)表示必須帶參數(shù)(默認(rèn)值為true)。

當(dāng)可選參數(shù)不存在時(shí),Spring默認(rèn)將其賦值為空(null),但由于bookId已定義為基本類型int,所以賦值會(huì)失敗。解決方法:采用int包裝類Integer。
三、使用領(lǐng)域?qū)ο髞?lái)接收參數(shù)

客戶端界面(表單):

controller層:

@Controller
public class ParamPassDemo {
    @RequestMapping("/queryStringWithDomainObj")
    public String test3(Book book) {
        System.out.println("bookId="+book.getBookId()+", author="+book.getAuthor());
        return "index";
    }
 }

客戶端輸入:111, Bob

控制臺(tái)輸出:bookId=111, author=Bob

四、URL動(dòng)態(tài)參數(shù)傳遞(路徑參數(shù))

客戶端界面(超鏈接):

testPathVariable

controller層:

@Controller
public class ParamPassDemo {
    //@PathVariable可以用來(lái)映射URL中的占位符到目標(biāo)方法的參數(shù)中
    @RequestMapping("/book/{bookId}")
    public String test4(@PathVariable("bookId") Integer bookId) {
        System.out.println("bookId:" + bookId);
        return "index";
    }
 }

控制臺(tái)輸出:bookId:1

@PathVariable 映射 URL 綁定的占位符

通過(guò) @PathVariable 可以將 URL 中占位符參數(shù)綁定到控制器處理方法的入?yún)⒅校篣RL 中的 {xxx} 占位符可以通過(guò)@PathVariable(“xxx“) 綁定到操作方法的入?yún)⒅小?/pre>
五、使用HttpServletRequest獲取請(qǐng)求參數(shù)

客戶端界面(表單):

controller層:

@Controller
public class ParamPassDemo {
    @RequestMapping("/queryBook")
    public String test5(HttpServletRequest request) {
        System.out.println("bookId:" + request.getParameter("bookId"));
        //此處index.jsp界面在WEB-INF下
        return "redirect:/index.jsp";
    }
 }

客戶端輸入:123

控制臺(tái)輸出:用戶id:123

六、跳轉(zhuǎn)到另一個(gè)controller方法

客戶端界面(url地址欄):

http://localhost:8080/test6?bookId=321

controller層:

@Controller
public class ParamPassDemo {
    @RequestMapping("/test6")
    public String test6(String bookId){
        System.out.println("bookId="+bookId);
        //使用服務(wù)端跳轉(zhuǎn)的方式轉(zhuǎn)向到另一個(gè)controller
        //return "forward:queryBook?bookId="+bookId;
        return "redirect:queryUser?bookId="+bookId;
    }
 }

控制臺(tái)輸出:bookId=321 bookId:321

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/73441.html

相關(guān)文章

  • 通過(guò)項(xiàng)目逐步深入了解Spring MVC(一)

    摘要:是一個(gè)基于的框架??刂破鲗⒁晥D響應(yīng)給用戶通過(guò)視圖展示給用戶要的數(shù)據(jù)或處理結(jié)果。有了減少了其它組件之間的耦合度。 相關(guān)閱讀: 本文檔和項(xiàng)目代碼地址:https://github.com/zhisheng17/springmvc 轉(zhuǎn)載請(qǐng)注明出處和保留以上文字! 了解 Spring: Spring 官網(wǎng):http://spring.io/ 一個(gè)好的東西一般都會(huì)有一個(gè)好的文檔解釋說(shuō)明,如果你...

    whataa 評(píng)論0 收藏0
  • SpringMVC接收和響應(yīng)json數(shù)據(jù)

    摘要:客戶端提交阻止默認(rèn)事件得到搜索框數(shù)據(jù)值轉(zhuǎn)為的方法失敗啦當(dāng)前請(qǐng)求方式為控制臺(tái)輸出當(dāng)前請(qǐng)求方式為客戶端彈窗三以方式接收以數(shù)組形式傳遞客戶端失敗啦注意傳遞到后端時(shí)應(yīng)為的格式數(shù)據(jù),否則可能會(huì)出現(xiàn)錯(cuò)誤。 前后端的數(shù)據(jù)交互,除了通過(guò)form表單進(jìn)行提交外,也可以通過(guò)ajax向后端傳遞和接收json格式數(shù)據(jù)(這種方式可以實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)和頁(yè)面分離)。本文將總結(jié)一下在Spring MVC中接收和響應(yīng)jso...

    JowayYoung 評(píng)論0 收藏0
  • Spring之旅第八站:Spring MVC Spittr舞臺(tái)的搭建、基本的控制器、請(qǐng)求的輸入、表

    摘要:請(qǐng)求旅程的第一站是的。的任務(wù)是將請(qǐng)求發(fā)送控制器控制器是一個(gè)用于處理請(qǐng)求的組件。處理映射器根據(jù)請(qǐng)求攜帶的信息來(lái)進(jìn)行決策。這樣的結(jié)果就是,只能找到顯示聲明在配置類中的控制器。 構(gòu)建Spring Web應(yīng)用 說(shuō)明 如果你有幸能看到。 1、本文參考了《Spring 實(shí)戰(zhàn)》重點(diǎn)內(nèi)容,參考了GitHub上的代碼 2、本文只為記錄作為以后參考,要想真正領(lǐng)悟Spring的強(qiáng)大,請(qǐng)看原書(shū)。 3、在一次...

    maybe_009 評(píng)論0 收藏0
  • SSM學(xué)習(xí)系列(四) Spring MVC 幾種傳參方式

    摘要:初步使用幾種傳參方式本次沿用上次的工程,在中添加幾個(gè)方法創(chuàng)建模型修改直接把表單參數(shù)寫(xiě)入的相應(yīng)方法中通過(guò)來(lái)接收通過(guò)來(lái)接收通過(guò)接收用注解綁定請(qǐng)求參數(shù)測(cè)試接口測(cè)試使用的是火狐的插件,使用類似的工具也可以,或者寫(xiě)一個(gè)表單,這里不在多解釋可以看到請(qǐng)求 Spring MVC初步使用 Spring MVC 幾種傳參方式 本次沿用上次的工程,在controller中添加幾個(gè)方法 創(chuàng)建User模型 pu...

    cnTomato 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<