ElementUI中el-upload傳遞額外參數為date類型時后台SpringBoot接收不到


場景

ElementUI中el-upload怎樣上傳文件並且傳遞額外參數給Springboot后台進行接收:

https://mp.csdn.net/console/editor/html/107979828

上面講了怎樣使用el-upload控件傳遞給后台進行接收。

可以看到el-upload傳遞額外的參數時使用的data格式為

:data="{updateSupport:upload.updateSupport,lxyf:upload.lxyf}"

其中upload.updateSupport是布爾類型變量,而upload.lxyf是時間選擇器選擇的值,是Date類型,其默認值

      // 導入參數
      upload: {
        // 是否顯示彈出層(用戶導入)
        open: false,
        // 彈出層標題(用戶導入)
        title: "",
        // 是否禁用上傳
        isUploading: false,
        // 是否更新已經存在的用戶數據
        updateSupport: 0,
        //輪休月份
        lxyf: new Date(),
        // 設置上傳的請求頭部
        headers: { Authorization: "Bearer " + getToken() },
        // 上傳的地址
        url: process.env.VUE_APP_BASE_API + "/kqgl/lxsz/importData",
      },

取得是當前日期。

頁面上設置這個參數時是個時間選擇器

 

 

那么在將此事件參數lxyf和下面的勾選框的布爾類型的兩個參數通過如下方式進行傳遞時

:data="{updateSupport:upload.updateSupport,lxyf:upload.lxyf}"

在SpringBoot后台中接收的方式

    @RequestMapping("/importData")
    @ResponseBody
    public AjaxResult importData(@RequestParam MultipartFile file, @RequestParam boolean updateSupport,@RequestParam Date lxyf) throws Exception {

   }

布爾類型的參數能接收到,但是Date類型的參數就接收不到。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

這是因為采用上面那種

:data="{updateSupport:upload.updateSupport,lxyf:upload.lxyf}"

格式的傳遞時間參數,會將其格式化為String字符串格式,傳遞到后台時就不能再用Date去進行接收了

而應該是用String進行接收。

    @RequestMapping("/importData")
    @ResponseBody
    public AjaxResult importData(@RequestParam MultipartFile file, @RequestParam boolean updateSupport,@RequestParam String lxyf) throws Exception {

   }

 

這樣就能接收到了但是是字符串,如果想要Date類型的數據,

可以調用下面的字符串轉Date類型的方法

Date lxyfDate = str2Date(lxyf);

 

方法實現

    public  Date str2Date(String dateString) {

         String FORMAT_STRING = "yyyy-MM-dd HH:mm:ss";

         String[] REPLACE_STRING = new String[]{"GMT+0800", "GMT+08:00"};

         String SPLIT_STRING = "(中國標准時間)";

        try {
            dateString = dateString.split(Pattern.quote(SPLIT_STRING))[0].replace(REPLACE_STRING[0], REPLACE_STRING[1]);
            SimpleDateFormat sf1 = new SimpleDateFormat("E MMM dd yyyy HH:mm:ss z", Locale.US);
            Date date = sf1.parse(dateString);
            return date;
        } catch (Exception e) {
            throw new RuntimeException("時間轉化格式錯誤" + "[dateString=" + dateString + "]" + "[FORMAT_STRING=" + FORMAT_STRING + "]");
        }
    } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM