Struts2仅针对特定类型引发类型转换错误

时间:2012-01-04 03:46:09

标签: java struts2

我们在自己的应用中注册了一个自定义类型转换器,比如FooTypeConverter,它负责转换为Foo类型。我们对其他类型的类型转换错误不感兴趣,但如果目标类型Foo的类型转换失败,我们会希望引发验证错误。我们对String => FooFoo => String

感兴趣

我知道这可以通过ConversionErrorFieldValidator来实现,但这意味着要修饰目标字段。有什么方法可以通过一些全局设置实现这一目标吗?

谢谢和最诚挚的问候, ASA

1 个答案:

答案 0 :(得分:2)

Nutshell:替换默认的"conversionError"拦截器,并将其替换为覆盖shouldAddError的版本,如果值的类型为{{1},则返回true }。

详细信息:默认拦截器是XWork Foo的扩展,主要检查值。它还检查特定类型,所以我认为这是最干净的钩子。如果值类型是您感兴趣的值,请覆盖ConversionErrorInterceptor并返回shouldAddError

大致是:

true

您可能希望保留一些价值检查,因此请仔细检查。最好先调用protected boolean shouldAddError(String propertyName, Object value) { return value instanceOf Foo; } ,如果返回super.shouldAddError则进行检查。