RAD中JSP中的重复局部变量

时间:2010-10-28 12:18:44

标签: jsp duplicates rad

在RAD中构建后,我在JSP中遇到“重复的局部变量”错误。我在scriptlet标签中有相同的变量名称,不同的逻辑:present / logic iterate标签。 示例代码。 <logic:present> <% int var1 = 5; %> </logic:present> ................... <logic:present> <% int var1 = 5; %> </logic:present>   由于变量的范围不同,因此它们不是重复的。变量是否在同一范围内?如果没有,是RAD的编译/验证问题吗?请指教。

2 个答案:

答案 0 :(得分:1)

RAD是对的。您正在使用 scriptlet (那些旧的<% %>事物,应该是avoided)而不是taglibs(例如<prefix:name>)来处理服务器端数据。 scriptlets 与您期望的那些taglib不在同一范围内运行。 <% %>声明的所有 scriptlet 共享相同的本地范围。摆脱它们并用适当的taglib替换它们。由于功能要求不清楚,很难给出一个非常适合正确方法的代码示例。

答案 1 :(得分:0)

他们确实处于相同的范围内,如果它是这样的话,例如:

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

最后,所有内容都会被翻译成一个方法,这就是为什么你的代码助手会产生错误。无论如何,BalusC表示不建议使用scriptlet。