2016-02-26 28 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中定義的變量可能無法在您的表達式語言代碼中訪問。 我還沒有嘗試過,但通過反編譯器查看相應的生成的類文件,看看發生了什麼