ゴミ箱.net

汚物は消毒

Struts2のバグ踏んだ

ウェブアプリケーションフレームワークのStruts 2を使っててバグに出くわしたので報告してみた。

[#WW-4167] Unable to create a custom validator inheriting IntRangeFieldValidator - ASF JIRA

Struts 2には入力値をチェックする仕組みとしてバリデータというものがあり、最初から用意されているもの以外に独自に作成することもできる。
整数値の入力値の最大・最小値をチェックするためのバリデータとしてIntRangeFieldValidatorというのが用意されているが、それを継承して独自のバリデータを作ろうとしたところ、なぜか動作しない。

どうやらIntRangeFieldValidatorの基底クラスでgetter、setterの型が型パラメータで指定されているのが悪いらしい。基底クラスの直接の派生クラスでは問題ないが、間接的に継承している場合にsetterに値がきちんと渡されないようだ。

回避策としては、IntRangeFieldValidatorを継承しないようにするか、継承するときは型パラメータを使ったgetterとsetter(getMin, setMin, getMax, setMan)をオーバーライドしましょう(実装は基底クラスのメソッドを呼び出すだけでおk)。
スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する