中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決SpringBoot中@PathVariable使用時遇到的問題

發布時間:2022-03-03 14:13:13 來源:億速云 閱讀:780 作者:小新 欄目:開發技術

小編給大家分享一下如何解決SpringBoot中@PathVariable使用時遇到的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

    @PathVariable使用時遇到的問題

    第一個問題

    接口:

    /**
         * 查詢客戶詳細信息
         * BY Oliver_Deng
         * @param userId 用戶id
         * @return
         */
        @ApiOperation(value="查詢客戶詳細信息",notes = "根據傳入id查詢客戶詳細信息")
        @ApiResponses({@ApiResponse(code=400,message="請求參數沒填好")})
        @ApiImplicitParam(paramType = "query", name = "userId", dataType = "Integer", required = true, value = "客戶id")
        @GetMapping("/findCustomerDetailByUserId/{userId}")
        public Result<Map<String,Object>> findCustomerByUserId(@PathVariable Integer userId){
            //客戶信息
    //        CustomerListVo customerMessage = customerUserService.findCustomerByUserID(userId);
            //客戶車輛信息
    //        List<CustomerUserCar> cars = customerUserCarService.findCarByUserId(Integer.valueOf(userId)); //not finish yet
            //TODO 計次卡、儲值卡
            return null;
        }

    Swagger訪問:

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    解決辦法

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    將paramType 設置為path即可。

    paramType:表示參數放在哪個地方

    • header-->請求參數的獲取:@RequestHeader(代碼中接收注解)

    • query-->請求參數的獲取:@RequestParam(代碼中接收注解)

    • path(用于restful接口)-->請求參數的獲取:@PathVariable(代碼中接收注解)

    • body-->請求參數的獲取:@RequestBody(代碼中接收注解)

    • form(不常用)

    第二個問題

    接口:

    /**
     * 查詢車輛品牌、車系、年款、車型信息
     * BY Oliver_Deng
     * @param brandId 車輛品牌ID
     * @param familyId 車系ID
     * @param groupId 車輛年款ID
     * @return
     */
    @ApiOperation(value="查詢車輛品牌、車系、年款、車型信息",notes = "查詢車輛品牌、車系、年款、車型信息,傳入子id時先將上級id清空,一次訪問只能傳入一種id或者不傳id")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "brandId", dataType = "String", required = false, value = "車輛品牌ID"),
            @ApiImplicitParam(paramType = "query", name = "familyId", dataType = "String", required = false, value = "車系ID"),
            @ApiImplicitParam(paramType = "query", name = "groupId", dataType = "String", required = false, value = "車輛年款ID")
    })
    @ApiResponses({@ApiResponse(code=400,message="請求參數沒填好")})
    @GetMapping("/findCarBrandMessage/{brandId}/{familyId}/{groupId}")
    public Result findCarBrandMessage(@PathVariable String brandId,@PathVariable String familyId,@PathVariable String groupId){
        return customerUserCarService.findCarBrandMessage(brandId,familyId,groupId);
    }

    Swageer訪問:

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    查詢成功,但是沒有數據,我們來DeBug看一下:

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    可以看到值竟然時這些,并不是為null,所以自然滿足了if條件,但功能并不是要如此。

    解決辦法

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    把@ApiImplicitParam參數去掉,用@RequestParam()。

    為什么能用@RequestParam()?

    RequestParam就是在url后面拼接的參數。

    成功:

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    @PathVariable 404問題

    跳轉頁面:

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    controller層:

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    之后console不報錯,但是

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    改變方法:

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    改正之后:

    如何解決SpringBoot中@PathVariable使用時遇到的問題

    以上是“如何解決SpringBoot中@PathVariable使用時遇到的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    永嘉县| 山丹县| 漳州市| 津南区| 平阳县| 宜兰市| 自治县| 江油市| 巴林右旗| 贵州省| 凤阳县| 波密县| 获嘉县| 观塘区| 武功县| 河北省| 鞍山市| 晋中市| 扎兰屯市| 定南县| 宁都县| 湖州市| 阿拉善盟| 石家庄市| 汽车| 达州市| 溆浦县| 沛县| 麦盖提县| 名山县| 高碑店市| 奇台县| 柳江县| 寿宁县| 陕西省| 沂水县| 大厂| 张家港市| 麻栗坡县| 沈阳市| 上思县|