0

I get a "Duplicate Local Variable" error in JSP after build in RAD. I have same variable names inside scriptlet tags different logic:present / logic iterate tags. Sample code. <logic:present> <% int var1 = 5; %> </logic:present> ................... <logic:present> <% int var1 = 5; %> </logic:present> Since the variable are in different scope, they are not duplicates. Are the variables in the same scope ? If not, is it some compilation / validation problem in RAD ? Please advise.

SKR
  • 779
  • 4
  • 17
  • 31

2 Answers2

1

RAD is right. You're using scriptlets (those old fashioned <% %> things which should be avoided) instead of taglibs (for example <prefix:name>) to work with server side data. The scriptlets doesn't run in the same scope as those taglibs as you seem to expect. All scriptlets declared by <% %> share the same local scope. Get rid of them and replace them by the appropriate taglibs. Since the functional requirement is unclear, it's hard to give you a well suited code example of the correct approach.

Community
  • 1
  • 1
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
0

They are indeed in the same scope they wouldn't if it were like this for example:

<logic:present> 
  <% {int var1 = 5; }%>
 </logic:present>
 ................... 
<logic:present> 
  <% int var1 = 5; %>
 </logic:present>

In the end everything will be translated into one method, thats why your code assistent generates you an error. Anyway as BalusC said it is not recommended to use scriptlets.

kukudas
  • 4,834
  • 5
  • 44
  • 65