0

Je crée un portlet à l'aide de SpringWebFlow, ce portlet a un JSP avec des champs d'entrée, des listes déroulantes et quelques boutons radio. J'ai utilisé BeanValidation et des annotations comme @NotNull et @NotEmpty fonctionne très bien pour les menus déroulants et les champs d'entrée, mais annotations ne fonctionnent pas pour RadioButton, Dans mon JSP j'ai ce codeBeanValidation ne fonctionne pas pour les boutons radio

<aui:field-wrapper name="gender"> 
    <aui:input inlineLabel="right" name="gender" type="radio" value="male" label="male" checked="${surveyBean.gender == 'male' ? 'true' : 'false'}"/> 
    <aui:input inlineLabel="right" name="gender" type="radio" value="female" label="female" checked="${surveyBean.gender == 'female' ? 'true' : 'false'}" /> 
</aui:field-wrapper> 

Dans mon PageBean J'ai le code suivant

@NotNull 
@NotEmpty 
public String getGender() 
{ 
    return gender; 
} 

Ce que je veux, c'est que l'utilisateur ne laisse aucun champ vide ou désélectionné, pour les champs d'entrée et les messages d'erreur appropriés sont affichés depuis le fichier Validation.properties s'ils sont laissés vides ,,, pour les boutons radio @NotNull et @NotEmpty ne fonctionnent pas ils ne sont pas validés donc même s'ils ne sont pas sélectionnés, l'utilisateur peut aller à la page suivante ...

Pourriez-vous me guider dans la bonne direction?

Répondre

0

Quelle est la valeur pour le genre qui est définie pour le bean backing? Bean Validation ne se soucie pas d'où il obtient ses données. Il ne sait rien sur les listes déroulantes et les boutons radio. Les choses intéressantes sont ce que les différentes valeurs sont dans votre bean au moment où la validation est appelée. S'il n'y a pas d'exception et pas de violation de contrainte, je suppose que le genre n'est ni nul ni vide. Cela pourrait par exemple être un espace. Il y a une différence entre @NotEmpty et NotBlank. Ce dernier vérifie également les caractères blancs.

+0

Je l'ai cochée, lorsque le bouton radio n'est pas sélectionné, sa valeur est définie sur ** null **. J'ai écrit une annotation personnalisée pour vérifier sa valeur où elle montre que la valeur est nulle et la méthode 'isValid' renvoie false, le problème semble être MessageInterpolator où elle renvoie une exception de pointeur nul ... savez-vous si cela est dû au fait que BeanValidation est pas en mesure d'identifier où placer le message d'erreur que les boutons radio sont au nombre de deux avec le même nom et ID? et probablement c'est la raison de ce comportement différent que d'autres champs de formulaire sont validés parfaitement bien? Merci – user3367569

+0

Je pense que j'ai trouvé la source du problème, posté une nouvelle question ici - http://stackoverflow.com/questions/25831742/radio-button-field-not-found-in-portletrequest-getparametermap – user3367569

Questions connexes