【发布时间】:2016-06-09 12:38:19
【问题描述】:
我有这个 Jsp 文件
<SELECT name="brandsFrom" onchange="as()">
<c:forEach items="${brandsSelectedList}" var="brands">
<c:if test="${brands.name == nam}">
<option value="${brands.id}">${brands.id}</option>
</c:if>
</c:forEach>
</SELECT>
我已经在这段代码上方声明了 nam,比如
<%!
String nam;
%>
<%
nam=request.getParameter("name");
out.println("value in the string ="+nam+"+");
%>
当我使用时
<c:if test="${brands.name == nam}">
代码不会朗姆酒,而当我使用这样的东西时
<c:if test="${brands.name == 'Denim'}">
代码运行。为什么我不能使用 nam 变量??
【问题讨论】:
-
支票在我看来是正确的。您确定变量的值是您所期望的吗?
-
你有没有从
out.println("value in the string ="+nam+"+");得到一些输出? -
试过
<c:if test="${brands.name eq nam}">? -
你不需要使用 nam。你可以使用
如果你坚持使用nam,那么你应该了解脚本变量和作用域变量的区别。 -
感谢@rickz 您的解决方案有效,但我仍然想知道为什么之前的解决方案无效。我尝试阅读 jsp 文件中变量的范围,但无法弄清楚它不起作用的原因