J'ai la classe a, CouponAction, avec deux méthodes, initCoupon et addCoupon. Je veux seulement la validation sur la méthode addCoupon, pas au niveau de la classe où il essaye de valider toutes les méthodes.Validation avec Struts 2 Extension de convetion au niveau de la méthode, pas au niveau de la classe
cette classe avec des méthodes ressemble à quelque chose comme ça
@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", [email protected]("jsonValidationWorkflowStack"),
results = {
@Result(location = "/jsp/order/coupon/paymentCoupon.jsp", name = "success")
})
public String addCoupon() {
.......
}
Puis-je obtenir:
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
Tous les exemples Iv vu utilise l'annotation de validation au niveau de la classe. Lorsque j'ai utilisé xml j'avais un fichier: CouponAction-addCoupon-validation.xml qui ne valide que la méthode addCoupon. Comment puis-je le faire fonctionner avec l'annotation de validation?
merci d'avance.
Sources:
http://struts.apache.org/2.1.6/docs/convention-plugin.html#ConventionPlugin-InterceptorRefannotation
http://struts.apache.org/2.0.14/docs/annotations.html
parfait, merci, c'est la solution. –
vous êtes les bienvenus :) –