Je reçois une erreur "Duplicate Local Variable" dans JSP après la génération dans RAD. J'ai les mêmes noms de variables à l'intérieur des balises scriptlet différentes logiques: présent/logique itérer les balises. Exemple de code. <logic:present> <% int var1 = 5; %> </logic:present> ................... <logic:present> <% int var1 = 5; %> </logic:present>
Étant donné que les variables ont une portée différente, elles ne sont pas des doublons. Les variables sont-elles dans le même champ? Si non, est-ce un problème de compilation/validation dans RAD? S'il vous plaît donnez votre avis.Une variable locale dupliquée dans JSP dans le RAD
Répondre
Ils sont en effet dans la même portée qu'ils ne le feraient pas si elle était comme ça par exemple:
<logic:present>
<% {int var1 = 5; }%>
</logic:present>
...................
<logic:present>
<% int var1 = 5; %>
</logic:present>
En fin, tout sera traduit en une seule méthode, c'est pourquoi votre Assistent de code génère une erreur . Quoi qu'il en soit, comme l'a dit BalusC, il n'est pas recommandé d'utiliser des scriptlets.
RAD a raison. Vous utilisez scriptlets (ces choses à l'ancienne <% %>
choses qui devraient être avoided) au lieu de taglibs (par exemple <prefix:name>
) pour travailler avec les données côté serveur. Les scriptlets ne s'exécutent pas dans la même portée que les taglibs comme vous le souhaitez. Tousscriptlets déclarés par <% %>
partagent le même portée local. Débarrassez-vous d'eux et remplacez-les par les taglibs appropriés. Puisque l'exigence fonctionnelle n'est pas claire, il est difficile de vous donner un exemple de code bien adapté de la bonne approche.