<%
  int id = 20;
%><c:forEach var="product" items="${productList}">

   <c:if test="${product.pid==我上面定义的变量的值}">是的</c:if>

</c:forEach>
如上所示,我用标签做了个循环,然后想拿每循环出来的对象的id 和我在页面定义的变量作一个比较,但好像标签里引用不到变量的值。该怎么样才能在比较到?

解决方案 »

  1.   

    其实定义变量又要和JSTL进行互相引用,应该用<c:set></c:set>这个标签来定义变量!如果非要用JAVA来定义,那你也可以试试,将定义好的变量int id = 20;放入page属性范围,然后用EL取,这样看行不行!
      

  2.   

    就是存在jsp的四个内置作用域中就OK了,el都可以从小到大的范围去检索你的值,然后通过反射获取
      

  3.   

    即使使用JSTL标签的时候,那么在EL表达式都应该统一,以便达到更好的交互!你即然使用了<% int i=20;%> 这种来定义变量,那你后面也应该统一下吧
    <% for(Product product:productList){
         if(product.getId()==i){}
    } %>或者像楼上一样,用<c:set>来定义变量
      

  4.   

    用<c:set>定义变量或者request.setAttribute("", "")