2017-05-28 4 views
0

J'ai un pojo final (par exemple MyBean) contenant une propriété booléenne "Boolean isValid". Je remplis une liste de MyBean à afficher sur le jsp Struts2. Maintenant, je veux avoir un bouton radio à côté de chaque MyBean afin que l'utilisateur puisse sélectionner l'un d'entre eux en tant que bean valide.Comment lier une propriété de bean bean avec le bouton radio

Ce n'est pas le cas que je souhaite qu'une radio choisisse parmi une liste prédéfinie de valeurs (car "list" est un attribut obligatoire dans s: radio). Quelqu'un peut-il suggérer comment y parvenir?

Répondre

0

La propriété booléenne doit avoir un getter

public Boolean isValid() { return this.isValid; } 

une fois que la liste est renvoyée, vous pouvez utiliser la projection OGNL pour filtrer seulement isValid valeurs. Ou vous n'en avez pas besoin du tout si vous utilisez les attributs listkey et listValue.

Voir des exemples de Struts docs:

Dans cet exemple, un contrôle radio est affiché avec une liste des sexes. La liste de sexe est construite à partir de l'attribut id=genders. Le cadre appelle getGenders() qui renverra un Map.

Pour les exemples utilisant les attributs listKey et listValue, voir le tag de sélection de section. La valeur par défaut sélectionnée sera déterminée (dans ce cas) par la méthode getMale() dans la classe d'action qui doit renvoyer une valeur similaire à la clé de la carte getGenders() si ce genre particulier doit être sélectionné.

<s:action name="GenderMap" var="genders"/> 
<s:radio label="Gender" name="male" list="#genders.genders"/> 
<@s.radio name="car" list={"ford": "Ford Motor Co", "toyota": "Toyota"} listKey="key" listValue="value" /> 
+0

Merci pour la réponse! mais j'ai déjà essayé ça. Cette radio (sous un itérateur) ne fonctionnera que si leur "nom" est le même. Mais je ne peux pas garder le même nom pour tous les haricots puisque ce "nom" est utilisé lors de la soumission de la page (chaque radio doit correspondre à un bean particulier dans le backend alors qu'ils ont une relation "une seule sélection" à l'avant. –