クラス WebRequestDataBinder

実装されたすべてのインターフェース:
PropertyEditorRegistryTypeConverter

public class WebRequestDataBinder extends WebDataBinder
マルチパートファイルのサポートを含む、Web リクエストパラメーターから JavaBeans へのデータバインディングを実行する特別な DataBinder

警告 : データバインディングは、外部クライアントによるアクセスや変更を目的としていないオブジェクトグラフの部分を公開することにより、セキュリティの課題を引き起こす可能性があります。データバインディングの設計と使用は、セキュリティに関して慎重に検討する必要があります。詳細については、リファレンスマニュアルの Spring Web MVC および Spring WebFlux のデータバインディングに関する専用セクションを参照してください。

許可 / 必須フィールドの指定、カスタムプロパティエディターの登録などのカスタマイズオプションについては、DataBinder/WebDataBinder スーパークラスを参照してください。

Spring の WebRequest 抽象化上に構築されたカスタム Web コントローラーやインターセプターの手動データバインディングにも使用できます (たとえば WebRequestInterceptor の実装)。各バインディングプロセスのために WebRequestDataBinder をインスタンス化し、現在の WebRequest を引数として bind を起動するだけです。

 MyBean myBean = new MyBean();
 // apply binder to custom target object
 WebRequestDataBinder binder = new WebRequestDataBinder(myBean);
 // register custom editors, if desired
 binder.registerCustomEditor(...);
 // trigger actual binding of request parameters
 binder.bind(request);
 // optionally evaluate binding errors
 Errors errors = binder.getErrors();
 ...
導入:
2.5.2
作成者:
Juergen Hoeller, Brian Clozel
関連事項:
  • コンストラクターの詳細

    • WebRequestDataBinder

      public WebRequestDataBinder(@Nullable ObjectSE target)
      デフォルトのオブジェクト名で、新しい WebRequestDataBinder インスタンスを作成します。
      パラメーター:
      target - バインドするターゲットオブジェクト (または、バインダーが単なるパラメーター値の変換に使用される場合は null )
      関連事項:
    • WebRequestDataBinder

      public WebRequestDataBinder(@Nullable ObjectSE target, StringSE objectName)
      新しい WebRequestDataBinder インスタンスを作成します。
      パラメーター:
      target - バインドするターゲットオブジェクト (または、バインダーが単なるパラメーター値の変換に使用される場合は null )
      objectName - ターゲットオブジェクトの名前
  • メソッドの詳細

    • construct

      public void construct(WebRequest request)
      デフォルトまたは単一のデータコンストラクターを使用して、リクエストパラメーター、マルチパートファイル、またはパーツをコンストラクター引数にバインドすることでターゲットを作成します。

      呼び出し後、DataBinder.getBindingResult() を使用してバインドエラーをチェックします。何もない場合、ターゲットが設定され、setter を介してさらなる初期化のために bind(WebRequest) を呼び出すことができます。

      パラメーター:
      request - バインドのリクエスト
      導入:
      6.1
    • shouldConstructArgument

      protected boolean shouldConstructArgument(MethodParameter param)
      クラスからコピーされた説明: DataBinder
      指定された型のコンストラクター引数をインスタンス化して、独自のコンストラクター引数をバインド値に照合するかどうか。

      デフォルトでは、単純な値型、マップ、コレクション、配列は、ネストされたコンストラクターバインディングの初期化から除外されます。

      オーバーライド:
      クラス DataBindershouldConstructArgument 
    • bind

      public void bind(WebRequest request)
      指定されたリクエストのパラメーターをこのバインダーのターゲットにバインドし、マルチパートリクエストの場合はマルチパートファイルもバインドします。

      この呼び出しは、必須フィールド(コード「必須」)などの基本的なバインディングエラーを表すフィールドエラー、または値と Bean プロパティ(コード "typeMismatch" )の型の不一致を作成できます。

      マルチパートファイルは、通常の HTTP パラメーターと同様に、パラメーター名を介してバインドされます。つまり、"uploadedFile" を "uploadedFile" Bean プロパティにバインドし、"setUploadedFile" setter メソッドを呼び出します。

      マルチパートファイルのターゲットプロパティの型は、MultipartFile、byte[]、または String です。サーブレットパーツバインディングは、リクエストが MultipartResolver を介して MultipartRequest に解析されていない場合にもサポートされます。

      パラメーター:
      request - バインドするパラメーターを含むリクエスト (マルチパートにすることができます)
      関連事項:
    • closeNoCatch

      public void closeNoCatch() throws BindException
      エラーを致命的として扱います。

      このメソッドは、入力が有効でない場合にエラーになる場合にのみ使用してください。これは、たとえばすべての入力がドロップダウンからのものである場合に適切です。

      例外:
      BindException - バインディングエラーが発生した場合