Struts 2バリデータ@FieldExpressionValidator
と@ExpressionValidator
を使用しています。これらのバリデータはOGNLの式をチェックします。これらの式で文字列を処理するケースはたくさんあります。Struts 2バリデータエクスプレッションでのStringUtilsの使用
expression="(captcha=='' && captcha== null || ....)
ここでは、StringUtils(isEmpty、trimToEmpty、...)を使用できると非常に便利です。
我々はfalseにstruts.ognl.allowStaticMethodAccess
を設定すると、セキュリティ上の問題のために、我々は行動
public StringUtils getStringUtils(){
return new StringUtils();
}
、その後、式のstringUtils.isEmpty(captcha)
に、このゲッターを追加することによって、それを解決しようとしました。しかし、それは動作しませんでした。
デバッグするために、我々は
ActionContext.getContext().getValueStack().findValue("stringUtils"); //returns [email protected] which shows there is an object in the stack
ActionContext.getContext().getValueStack().findValue("stringUtils.isEmpty('dd')"); //returns null
任意のコメントをテストしました?!
'StringUtil'メソッドごとにメソッドを追加する必要があります:-(もっと良い解決法がありますか? –
これはたくさんの方法があるかもしれませんが、具体的に何を求めているのか分かりません。 –
親愛なる@RomanCはいコードがうまくいきました、私は探していましたが、あなたの質問にはうまくいかないコードがあります。 'Enhance'のために' StringUtils'メソッドごとにメソッドを別々に定義する必要がなくなりました。これが別の質問だと思うと、私は別の質問をすることができます! –