У меня есть класс, CouponAction, с двумя методами, initCoupon и addCoupon.Я хочу только проверку метода addCoupon, а не уровня класса, где он пытается проверить все методы.
этот класс с методами выглядит примерно так
@Scope("prototype") @Controller
@Namespace("/coupon")
public class CouponAction extends BaseAjaxAction<Coupon> {
............
@Action(value = "initPaymentCoupons", results = {
@Result(location = "/jsp/order/coupon/paymentCoupon.jsp", name = "success")
})
public String initCoupons(){
........
}
@Validations(requiredFields = {
@RequiredFieldValidator(fieldName = "couponCode", type = ValidatorType.FIELD, message = "Enter a coupon code")
})
@Action(value = "/addCoupon", interceptorRefs=@InterceptorRef("jsonValidationWorkflowStack"),
results = {
@Result(location = "/jsp/order/coupon/paymentCoupon.jsp", name = "success")
})
public String addCoupon() {
.......
}
Тогда я получаю:
2011-11-10 00:44:13,567 ERROR org.apache.struts2.components.ActionComponent.error:38 - Could not execute action: /coupon/initCoupons
No result defined for action vervik.actions.order.CouponAction and result input
Во всех примерах, которые я видел, используется аннотация проверки на уровне класса.Когда я использовал xml, у меня был файл: CouponAction-addCoupon-validation.xml, который только проверяет метод addCoupon.
Как мне заставить его работать с аннотацией проверки?
Источники:
http://struts.apache.org/2.1.6/docs/convention-plugin.html#ConventionPlugin-InterceptorRefannotation
http://struts.apache.org/2.0.14/docs/annotations.html