`

jstl 标签

 
阅读更多

 

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>

EL表达式下面注意点
	如果连接过来的参数 要加上param,如  param.id 
	如果参数放在request中的,要加上requestScope 的使用
1 创建变量与修改变量
 创建 <c:set var="name" value="-1"></c:set>
 修改  <c:set var="name" value="9"></c:set>
 创建数组:
<c:set var="provinces_arrs" value="北京,广东,上海,广西,海南,湖北,江西,江苏,浙江,福建,安徽,云南,贵州,四川,重庆,天津,河南,河北,山东,山西,辽宁,吉林,黑龙江,陕西,青海,西藏,新疆,新疆兵团,甘肃,宁夏,内蒙古,香港,澳门,台湾,国外"></c:set>

 2 if else 的使用
 <c:choose>
 	<c:when test="${param.name ne 'wang'}">
 		如果内容 
 	</c:when>
 	<c:otherwise>

		else 需要处理的事情
 	</c:otherwise>
 </c:choose>

3 循环使用
	<c:forEach var="user" items="${listUser}">
		<c:if test="${user.id==param.id }">
			${user.id }
		</c:if>
		
	</c:forEach>
    嵌套循环:
	<c:forEach  var="user" items="${userList}" varStatus="status" step="3">
			取出list中当前元素的第一个数据:${ userList[status.index] }
			取出list中当前元素的第二个数据:${ userList[status.index+2].subjectId }
			取出list中当前元素的第三个数据:${ userList[status.index+3].subjectId }
		<c:forEach var="userClass" items="${ userClassList}" >
		<c:if test="${user[status.index].classId eq userClass.classId}">
			 		判断当前用户 与 内部循环中的班级id是否相等					                                         
		 </c:if>
		</c:forEach>
	</c:forEach>
        count当前这次迭代从 1 开始的迭代计数  status.count

4 if使用
<c:if test="${count gt 0}">
	<c:set var="name" value="1"></c:set>
</c:if>

5 日期格式化: 返回字符串
 <fmt:formatDate var="now" value="<%=new Date()%>" pattern="yyyy-MM-dd HH:mm:ss"/>
6 数字格式化

 <fmt:formatNumber value="${discount*10}" minFractionDigits="0" groupingUsed="false" var="discount"/>
7 显示钱
 <fmt:formatNumber var="price" value="${price_}" type="currency" pattern=".##" />


8 特殊符号标记
	== eq 等于
	!= ne 不等于
	> gt 大于
	< lt 小于
	>= ge 大于等于
	<= le 小于等于


 

 9  循环 List<Map> 数据 

<%
	Map map1 = new HashMap();
	Map map2 = new HashMap();
	Map map3 = new HashMap();
	Map map4 = new HashMap();
	Map map5 = new HashMap();
	map1.put("201107", "500");
	map2.put("201108", "800");
	map3.put("201109", "700");
	map4.put("201110", "200");
	map5.put("201111", "600");
	List<Map<String,String>> list = new ArrayList<Map<String,String>>();
	list.add(map1);
	list.add(map2);
	list.add(map3);
	list.add(map4);
	list.add(map5);
	request.setAttribute("list",list);
%>
//list里放的是map,var就是map类型
//然后再循环map,entity就是key,value键值对,这样就可以了
<c:forEach var="map" items="${list}" >
	<c:forEach var="entry" items="${map}">
		<c:out value="${entry.key}" />|<c:out value="${entry.value}" />
	</c:forEach>
</c:forEach>
  

 

10  contains函数

   这个函数只能判断字符串包含关系,如果用来判断List,则如果list中包含一个16 和5 ,那如果要判断的字符串为1 ,则函数一样会给一个true的

  下面这个方法结果是无法确定的

<c:if test="${fn:contains(subjecidtList, subjects.id)}">checked</c:if> 

 

 

11 List包含对象,找了好久没找到好的处理方法,只能循环一遍了

  

  <c:set var="isHaveRole" value="false"/>
	 <c:forEach var="userRoleId" items="${userRoleIdList }">
	       <c:if test="${userRoleId eq role.id}">
 		   <c:set var="isHaveRole" value="true"/>
	      </c:if>  
	 </c:forEach>

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics