クラス ServletRequestDataBinder

実装されたすべてのインターフェース:
PropertyEditorRegistryTypeConverter
既知の直属サブクラス
ExtendedServletRequestDataBinder

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

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

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

手動データバインディングにも使用できます。バインディングプロセスごとに ServletRequestDataBinder をインスタンス化し、現在の ServletRequest を引数として bind を呼び出すだけです。

 MyBean myBean = new MyBean();
 // apply binder to custom target object
 ServletRequestDataBinder binder = new ServletRequestDataBinder(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();
 ...
作成者:
Rod Johnson, Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • ServletRequestDataBinder

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

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

    • construct

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

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

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

      サブクラスが使用する DataBinder.ValueResolver インスタンスを作成できるようにします。
      導入:
      6.1
    • shouldConstructArgument

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

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

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

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

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

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

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

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

      protected void addBindValues(MutablePropertyValues mpvs, ServletRequestEE request)
      サブクラスがリクエストに追加のバインド値を追加するために使用できる拡張ポイント。WebDataBinder.doBind(MutablePropertyValues) の前に呼び出されます。デフォルトの実装は空です。
      パラメーター:
      mpvs - データバインディングに使用されるプロパティ値
      request - 現在のリクエスト
    • closeNoCatch

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

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

      例外:
      ServletRequestBindingException - バインディングの問題に関する ServletException のサブクラス
    • valueResolver

      public static DataBinder.ValueResolver valueResolver(ServletRequestEE request, WebDataBinder binder)
      ServletRequest DataBinder.ValueResolver を返します。主に WebRequestDataBinder からの使用を想定しています。
      導入:
      6.1