jstl el表达式关于foreach循环内,div只显示一次问题

<%! int i=0; %>  <!-- 定义一个变量 -->
	<c:forEach var="info" items="${fontend}">  <!-- 相当于for循环-->
	<% i++; %>  <!-- 循环自增 -->
	<div>
	<c:if test="${info.videocourse=='c语言'}" var="flag" scope="session">
               <div  style="widht:100%;height:50px">
                  <c:if test="<%=i==1 %>">   <!-- 根据条件判断,如果等于一,显示结果 -->
                  c语言<br>
                  </c:if>
                     <%c=-1; %>  <!-- 令循环后的值重新回-1  刷新后,值会改变,这样就能永远保持判断   -->
        </c:if>
     </c:forEach>

上面使用<%%>来进行赋值取值,刷新页面后,值会改变
但是用以下方法,刷新后值,不变,就可以用于判断了

 <!--   赋值做判断--> 
 <% request.setAttribute("title", "标题");%>  
<center>
	<c:forEach var="info" items="${frontend}">
<!-- HTML语言回播视频显示 -->
	<c:if test="${info.videocourse=='HTML'}" var="flag" scope="session">
                  <c:if test="${title=='标题'}">   <!-- 根据条件判断,如果等于一,显示结果 -->
<div style="width:100%;height:auto;background-color:red;float:right;">
                  HTML
                  </div>
                   <% request.setAttribute("title", "标题1");%>
                  </c:if> 
                  以下代码省略

原因:
<%= %>只能得到当前面定义的值,即你在这个页里有<% int a=100%>,你在下面才可以使用<%=a%>。
${ }这个是el表达式,可以从上下文中得到值

不过还有一个问题是:数据库取值时是按顺序取值的,这样设置后,如果数据库不是按顺序排序的,取出的值就有出路了
用了一个很恶心的解决方法,一个分类一个foreach循环,用了好几个foreach 不知网友有没有更好的解决办法,有可以分享下,谢过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值