2010-10-28 6 views
0

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

0

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.

1

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.

Questions connexes