2
@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" は機能しません。名前フィールドにテキストを指定しなかったため、"N/A" ではなくデータベースに null を保存しますか?

4

4 に答える 4

4

そのパラメータが本当に必要な場合、デフォルト値を設定するポイントは何ですか。必要な true (デフォルトなので不要) としてマークした場合、デフォルト値は必要ありません。そのパラメータが必須でない場合は、false としてマークし、デフォルト値を指定します。

于 2013-05-12T05:44:48.977 に答える
1

春のドキュメンテーションRequestParam.required

デフォルトは true で、リクエストにパラメータがない場合に例外がスローされます。パラメータが欠落している場合に null を使用する場合は、これを false に切り替えます。

あなたの質問から、namePOSTリクエストを使用して空の値でパラメーターを送信していることがわかった. Spring のドキュメントによると、nameデフォルト値を使用するために、リクエストでパラメーターを送信しないでください。name空の場合は、HTML フォームからフィールドを削除するだけです。

GET リクエストにはデフォルト値の方が適しているようです。

于 2013-05-12T11:21:23.080 に答える
0

私のプロジェクトでは

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

このコードは、requestparam "name" が指定されていない場合に、name 変数を defaultvalue N/A として正しく設定します。私の推測では、この名前変数をテーブルに適切に挿入していないため、データベースは「N/A」ではなく null を格納しています。データ アクセス オブジェクト コードを表示するか、再確認してください。幸運を


@Tiarê Balbi に感謝します。実際には、「required=true」は必要ありません。これは、defaultValue="N/A" がこの変数を暗黙的に required=false として設定するためです。

于 2013-05-12T05:46:58.617 に答える