Дублировать локальную переменную в JSP в RAD - PullRequest
0 голосов
/ 28 октября 2010

Я получаю ошибку «Duplicate Local Variable» в JSP после сборки в RAD.У меня одни и те же имена переменных внутри тегов скриптлета, другая логика: присутствующие / логические итеративные теги.Образец кода. <logic:present> <% int var1 = 5; %> </logic:present> ................... <logic:present> <% int var1 = 5; %> </logic:present> Поскольку переменные находятся в разных областях, они не являются дубликатами.Находятся ли переменные в одной области?Если нет, то это проблема с компиляцией / проверкой в ​​RAD?Пожалуйста, сообщите.

Ответы [ 2 ]

1 голос
/ 28 октября 2010

RAD правильно. Вы используете скриптлеты (те старомодные <% %> вещи, которые следует избегать ) вместо тегов (например, <prefix:name>) для работы с данными на стороне сервера. скриптлеты не работают в той же области, что и теги-библиотеки, как вы ожидаете. Все скриптлеты , объявленные <% %>, совместно используют такую ​​же локальную область. Избавьтесь от них и замените их соответствующими тегами. Поскольку функциональные требования неясны, трудно дать вам подходящий пример кода правильного подхода.

0 голосов
/ 28 октября 2010

Они действительно находятся в одной области видимости, если бы это было так, например:

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

В конце концов, все будет переведено в один метод, поэтому ваш ассистент кода выдаст вам ошибку. В любом случае, как сказал BalusC, не рекомендуется использовать скриптлеты.

...