日期:2014-05-16  浏览次数:20414 次

JSTL常用标签之大聚集---中

<c:forEach>标签:

?? 主要功能为循环控制,可以将集合中的 成员进行迭代输出,功能与Iterator接口类似;

测试页面:

	<%
           String info[] = {"JAVA","LINUX","C++"};
           pageContext.setAttribute("info",info);
         %>

         输出全部内容:
         <c:forEach items="${info}" var="mem">
              ${mem }<br/>
         </c:forEach><br/>

	输出全部内容(间隔为2):

	<c:forEach items="${info}" var="mem" step="2">

	      ${mem }<br/>

         </c:forEach><br/>
        输出前2个:

	<c:forEach items="${info}" var="mem" begin="0" end="1">

	       ${mem }<br/>

         </c:forEach>

?其属性:

No 名称 EL 描述
1 var 不支持 用来存放集合中的每一个对象
2 items 支持 保存所有的集合,主要是数组,Collection(List,Set),及Map
3 varStatus 不支持 用于存放当前对象的成员信息
4 begin 支持 集合的开始位置,默认从0开始
5 end 支持 集合的结束为止,默认为集合的最后一个元素
6 step 支持 每次迭代的间隔数,默认为1

?

List的输出:

	<%
              List all = new ArrayList();
              all.add("keith");
              all.add("Jam");
              all.add("Scora");
              all.add("given");
              pageContext.setAttribute("all",all);
         %>

	 输出全部:

	 <c:forEach items="${all}" var="names">

 	${names }

         </c:forEach>

?还可以输出set,只要是Collection接口的子接口或类都可以输出;输出Map时有点麻烦,所有保存在Map集合中的对象都是通过Map.Enty的形式保存的,所以要想分离出Key和Value,则需要通过Map.Enty提供的getKey()和getValue()方法;

测试页面:

<body>
     <%
          Map map = new HashMap();
          map.put("name","keith");
          map.put("age","21");
           pageContext.setAttribute("info",map);
      %>
     <c:forEach items="${info}" var="mem">
          ${mem.key }--->${mem.value }<br />
     </c:forEach>
</body>

?<c:forTokens>标签:

?? 用于输出操作的,类似String类中的split()方法和循环输出的一种集合;

测试页面:

	<%
          String info = "www.google.com";
          pageContext.setAttribute("ref",info);
         %>
        拆分的结果是:

         <c:forTokens items="${ref}" delims="." var="connect">
              ${connect },
         </c:forTokens>

?其属性是:

NO 名称 EL 描述
1 var 不支持 用来存放集合中的每一个对象
2 items 支持 要输出的字符串
3 delims 不支持 定义分隔字符串的内容
4 varStatus 不支持 存放当前对象的相关信息
5 begin 支持 开始的输出位置,默认从0开始
6 end 支持 结束的输出位置,默认是最后一个
7 step 支持 迭代输出的问题

<c:import />标签:

?? 可以将其他页面的内容包含进来一起显示,于<jsp:inlcude>很像,但是<c:import />可以包含互联网的上的页面:

测试页面:

  <body>
   导入google:
   	<c:import url="http://www.google.com/"></c:import>
  </body>

?将google的页面导入进来,其属性如下:

No 属性名称 EL 描述
1 url 支持 指定要包含的文件路径
2 context 支持 如果要访问在同一个web容器下的其他资源时,必须以"/"开头
3 var 不支持 存储导入的文件内容
4 scope 不支持 定义var的保存范围,默认为page范围
5 charEncoding 支持 定义字符编码