2011-06-27 8 views
1

J'ai un problème lorsque j'appelle la même action Stripes avec plusieurs balises c: import dans la même jsp. Quand j'utilise le premier c: import, j'utilise quelques c: params avec. Ceux-ci sont liés aux champs correspondants de l'action. Mais quand j'utilise le prochain c: import, les champs sont déjà définis depuis le premier c: import, ce qui n'est pas ce que je veux. Je veux être capable d'importer une action plusieurs fois, et chaque fois il ne devrait utiliser que les valeurs que je passe avec les balises c: param.Multiple c: les importations avec Stripes causent des problèmes

La seule solution à laquelle je pourrais penser est d'appeler une méthode avant que la liaison et la validation aient lieu, ce qui met tous les champs à zéro. Est-ce une mauvaise idée? Quelle est la meilleure façon de gérer cela? Dans cet exemple, catName est réglé sur «Junior» à la première et à la deuxième fois que j'utilise c: import.

+0

Btw, je pense que ce comportement est dû au fait que Stripes utilise la même instance de la classe à la fois parce que tout est dans la même requête. – Brian

Répondre

1

Le c: importation incendies une requête http à votre serveur d'applications Java et de ce que vous décrivez le second c: l'importation semble encore ajouter les catName paramètres à la demande, vous pourriez vouloir essayer:

<c:import url="/widget/House.action"> 
    <c:param name="dogNam" value="Rocky" /> 
    <c:param name="catNam" value="" /> 
</c:import> 
+0

Et si j'ai une liste de taille arbitraire comme l'un des champs de la classe? J'utiliserais des balises qui ressemblent à ceci: Je pourrais en avoir 1, sinon j'en aurais 100. Comment pourrais-je savoir combien mettre à vide? chaîne? – Brian

+0

Si le problème ci-dessus a été résolu, vous pouvez d'abord vérifier ce qui cause réellement ce problème. Cela pourrait être un bug dans votre conteneur Web Java. Pour vérifier, vous pouvez essayer d'exécuter votre code sur un autre conteneur Web. Ou peut-être que cela est causé par votre configuration, pourrait être quelque chose comme un proxy de mise en cache devant votre conteneur web/serveur web. – Kdeveloper

Questions connexes