2009-07-11 12 views
0

Je rencontre un problème en utilisant le langage d'expression et les balises struts ensemble dans un projet struts2. L'extrait de code suivant d'un fichier jsp illustre mon problème. L'objet fruits est passé par une servlet. Je sais que l'erreur ne provient pas de la servlet car lorsque je commente le code du formulaire, il imprime correctement chaque fruit.Balises Struts et langage d'expression

<c:forEach var="fruit" items="${fruits}"> 
    <c:out value="${fruit}"/> 
    <s:form> 
     <s:checkbox label="${fruit}"></s:checkbox> 
    </s:form> 
</c:forEach> 

Cela ne fonctionne pas, et l'erreur suivante est renvoyée: « Selon TLD ou directive attribut dans le fichier d'étiquette, l'étiquette d'attribut n'accepte pas les expressions ». Ce que je me demande, est-ce qu'il y a un moyen de le faire d'une manière élégante semblable qui n'exige pas le langage d'expression? Je veux vraiment utiliser les balises Struts pour ma page jsp. J'ai aussi essayé avec% {fruit} sans chance.

Répondre

0

Je suggère de lire plus attentivement les documents pour les étiquettes Struts.

Votre code échoue car l'étiquette s: checkbox n'accepte pas les expressions. Il devrait être juste une étiquette simple quelque chose comme le suivant

<s:checkbox label="Male" name="male" value="true" /> 
<s:checkbox label="Female" name="male" /> 

Pour votre exemple ci-dessus le s: checkboxlist peut fonctionner mieux. Voir http://struts.apache.org/2.0.6/docs/checkboxlist.html pour plus d'informations.