I have javascript controls for the client-side validation, but we also want to implement server-side validation. I'm not criticizing the framework, I really really like it. I'm just wondering if the validations could be a little more flexible to allow reusing message properties.
2013/9/25 Chris <christal...@yahoo.fr> > Hello, > > It is only a proposal, but you might also use JavaScript controls. > The same JavaScript Code could be use with several forms or pages. > > But you can also prefer using the mapping field to Java Beans. ( or both ) > > > Regards > > Chris > > > ________________________________ > De : JOSE L MARTINEZ-AVIAL <jlm...@gmail.com> > À : Struts Users Mailing List <user@struts.apache.org> > Envoyé le : Mercredi 25 septembre 2013 12h51 > Objet : Re: Translation of fieldName in annotated validations > > > Yes, what I would like is to define a message for each validator that could > be reused with any field just by having the fieldname translated. Let's say > I have a form to create an user, with fields First name, Last name and > Email, where all the fields are required. I would define the following > properties for the labels of the fields > > firstName = First name > lastName = Last name > email = E-mail > > The field is going to be mapped to a bean "user" in the action. In that > case, the messages used for the validation would need to be as follows: > > validation-error.mandatory = The field ${getText(fieldName)} is > mandatory > user.firstName = First name > user.lastName = Last name > user.email = E-mail > > So I need to duplicate the messages. If I have another form, let's say > person, with the same fields, I would also need to create > > person.firstName = First name > person.lastName = Last name > person..email = E-mail > > I have to duplicate the message keys for any bean name I want to use, since > they can not be reused. It complicates the maintenance of the code. and the > reason for this is that there is no other way to pass an argument to the > key (which is actually an OGNL expression) that to use an attribute already > defined in the annotation, which is not very flexible. I don't know if it > would be possible to add an attribute keyValues to the annotation, which > would be an String array. Those values could be used when evaluating the > key, giving more flexibility to the programmer. > > What do you think? > JL > > 2013/9/25 Lukasz Lenart <lukaszlen...@apache.org> > > > 2013/9/25 JOSE L MARTINEZ-AVIAL <jlm...@gmail.com>: > > > Hello, > > > I have an Action that receives a parameter *email *on a bean > *event*. > > So > > > basically the parameter is send to the server with name "* > > > event.email=jlmagc<at>gmail.com*"'. The bean and the parameter are > > created > > > correctly, so this part works ok. Now I want to validate the input > using > > > annotations. In order to do that I'm using the following annotation at > > the > > > Action level: > > > > > > @Validations( > > > requiredStrings = > > > {@RequiredStringValidator(type = ValidatorType.SIMPLE, > > > fieldName = "event.email", key = > > > "validation-error.mandatory")} > > > ) > > > > > > > > > and in the package.properties I have the following definition > > > validation-error.mandatory = The field ${getText(fieldName)} is > > > mandatory > > > event.email = e-mail > > > > > > With this setup, if the parameter event.email is empty or not present, > > the > > > validator evaluates the expression and returns to the user the > following > > > message: > > > "The field e-mail is mandatory". > > > > > > It evaluates the key as an OGNL expression, retrieves the fieldName, > > > evaluates the getTest, and elaborate the sentence correctly. So it > works > > ok > > > > > > The issue here is that this forces me to define a property > "event.email" > > > since the attribute fieldName in the annotation is used both to locate > > the > > > field that needs validation, and as argument for the getText. Is it > > > possible to split that those two roles, so I can user my already > existing > > > property "email", instead of having to duplicate it as "event.email"? > > > > I am not sure what you want to achieve? Maybe some example? > > > > You can always use a different key i.e. validation.error.email.required > > and then > > validation.error.email.required = The field e-mail is required! > > > > What you presented is the situation when you want to use exactly the > > same validator for many fields without specifying key or with the same > > key - it simplifies but isn't flexible ;-) > > > > > > Regards > > -- > > Łukasz > > + 48 606 323 122 http://www.lenart.org.pl/ > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > > For additional commands, e-mail: user-h...@struts.apache.org > > > > >