2016-02-26 36 views
0

不能在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> 

我宣布上述这些代码就像

<%! 
String nam; 
%> 
<% 
nam=request.getParameter("name"); 
out.println("value in the string ="+nam+"+"); 
%> 

当我使用这个南JSP文件比较两个字符串

<c:if test="${brands.name == nam}"> 

代码不朗姆酒,而当我使用这样的事情

<c:if test="${brands.name == 'Denim'}"> 

代码运行。为什么我不能使用nam变量?

+0

该检查看起来是正确的。你确定这些变量的值是你期望的吗? – f1sh

+0

你是否从out.println(“string =”+ nam +“+”中的值)获得了一些输出;'? – D0dger

+0

试过''? – MaVRoSCy

回答

0

这可能是因为brands.name来自brandsSelectedList,它将在您的ActionSerlvet重写方法中设置,而nam是在JSP中定义的局部变量。在jsp中定义的变量可能无法在您的表达式语言代码中访问。 我还没有尝试过,但通过反编译器查看相应的生成的类文件,看看发生了什么