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