簡體   English   中英

Spring MVC默認值不起作用

[英]Spring MVC default value not working

@RequestMapping(value = "/Fin_AddBankAccount", method = RequestMethod.POST)
public @ResponseBody JsonResponse addCoaCategory(
    @RequestParam(value="code", required=true) long code,
    @RequestParam(value="startFrom", required=true) long startFrom,
    @RequestParam(value="name", required=true, defaultValue="N/A") String name)
    {

    }

defaultValue="N/A" 不起作用,因為我沒有在 name 字段中提供任何文本,它在數據庫中存儲 null 而不是 "N/A"?

如果您真的想要該參數,那么設置默認值有什么意義。 如果將其標記為 required true(不需要,因為它是默認值),則不需要默認值。 如果該參數不是強制性的,則將其標記為 false 並提供默認值。

Spring RequestParam.required文檔

默認為true,導致請求中缺少參數時拋出異常。 如果您希望在缺少參數的情況下使用 null,請將其切換為 false。

從您的問題中,我發現您正在使用 POST 請求發送帶有空值的參數name 根據 Spring 文檔,您不應在請求中發送name參數以使用默認值。 如果name字段為空,只需從 HTML 表單中刪除name字段。

似乎默認值對 GET 請求更有意義。

確保您不傳遞空字符串值有效方法: 1. Fin_AddBankAccount?name= O/P: name="N/A"

  1. Fin_AddBankAccount? O/P:名稱=“不適用”

無效方法:Fin_AddBankAccount?name="" 這會將空字符串設置為變量,即 name="";

在我的項目中

@RequestParam(value="name", required=true, defaultValue="N/A") String name

當未提供 requestparam "name" 時,此代碼正確地將 name 變量設置為默認值 N/A。 我的猜測是您沒有將此名稱變量正確插入表中,因此數據庫存儲的是 null 而不是“N/A”。 請向我們展示或仔細檢查數據訪問對象代碼。 祝你好運


謝謝@Tiarê Balbi,實際上您不需要“required=true”,因為 defaultValue="N/A" 無論如何都隱式地將此變量設置為 required=false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM