Google アプリ エンジン 1.8.0 で Spring MVC 3.2.3.RELEASE (注釈) を使用しています。
フォームからの空白文字列を null 値として変換するための StringTrimmerEditor を追加しましたが、正常に動作していますが、副作用として、コントローラーで @RequestParams を使用するすべてのメソッドは、すべての @RequestParams が入力されることを期待しています。それ以外の場合、http エラー 400 がスローされます。 (required=false) や (defaultValue="some value") などのさまざまな @RequestParam 設定を試しましたが、うまくいきません。
これが私たちがそれをどのように使用しているかです
@ControllerAdvice
public class ControllerSetup
{
@InitBinder
public void initBinder ( WebDataBinder binder )
{
StringTrimmerEditor stringtrimmer = new StringTrimmerEditor(true);
binder.registerCustomEditor(String.class, stringtrimmer);
}
}
コントローラ
@RequestMapping(value="/addreportitems", method=RequestMethod.POST)
public String saveEditForm(@ModelAttribute DCReport dcReport,
@ModelAttribute("loggedInEmployee") Employee someEmployee,
@RequestParam Integer someInteger,
Model m) {
....
}
someInteger をフォームに入れないと、エラー Error 400 Required Integer parameter 'someInteger' is not present が発生します
StringTrimmer を削除すると、完全に正常に動作します。ここで何か不足していますか? 助けてくれてありがとう。