私のコントローラには、空の文字列のnullであってはならない、いくつかのIDを含むStringパラメータがあります。私はそれが空ではないことを確認する方法はありますか?@RequestMappingパラメータの文字列ですか? 私はいくつかの方法でそれを解決しようとしました。要求パラメータをチェックする方法は空ではありません@RequestMappingパラメータの文字列?
@RequestMapping(value = someURL, params = {"id"})
public SomeResponse doSomething(@RequestParam(required = true) String id)
@RequestMapping(value = someURL, params = {"!id="})
public SomeResponse doSomething(@RequestParam(required = true) String id)
@RequestMapping(value = someURL, params = {"!id=\"\""})
public SomeResponse doSomething(@RequestParam(required = true) String id)
成功しませんでした。 私が理解しているように、params = {"id"}
と@RequestParam(required = true)
の両方は、そのパラメータid
が要求(!= null)で表示されているかどうかだけを確認できます。
私が
if (id == null || id.isEmpty()) {
return someErrorResponse;
}
のように、コントローラBOBYのコードでそれを確認する必要がありますが、私は間違っているなら、私を修正してください可能性が最も高いです。 ありがとうございます。
P.S.私のアプリはApache Tomcat 7.0.62コンテナのJava 1.7 SEで動作しています
私は、ヘッダーフィールドを除外したときにステータス400が得られたので、 'required = true'は必要ではないことに気付きました: '{" status ":400、" error ":" Bad Request "、" exception " org.springframework.web.bind.ServletRequestBindingException "、" message ":"文字列型のメソッドパラメータのリクエストヘッダー 'X-Custom-Header'が見つかりません "、" path ":"/api/"} ' – user3105453
ありがとうございました。これが私の必要なものです。私があなたが提案した方法で注釈を定義したとき、コントローラメソッドの始めにブレークポイントを置き、テストを実行しました。私はコントローラメソッドには入っていませんでした。 b)自己説明例外org.springframework.web.bind.UnsatisfiedServletRequestParameterExceptionが発生しました:パラメータ条件 "id!="が実際の要求パラメータに対して満たされていない:id = {} – WeGa