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描述
1var不支持用来存放集合中的每一个对象
2items支持保存所有的集合,主要是数组,Collection(List,Set),及Map
3varStatus不支持用于存放当前对象的成员信息
4begin支持集合的开始位置,默认从0开始
5end支持集合的结束为止,默认为集合的最后一个元素
6step支持每次迭代的间隔数,默认为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描述
1var不支持用来存放集合中的每一个对象
2items支持要输出的字符串
3delims不支持定义分隔字符串的内容
4varStatus不支持存放当前对象的相关信息
5begin支持开始的输出位置,默认从0开始
6end支持结束的输出位置,默认是最后一个
7step支持迭代输出的问题

<c:import />标签:

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

测试页面:

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

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

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

 

<c:url />标签:

   可以直接再产生一个URL地址,语法如下:

	<c:url value="http://www.google.com.hk/" var="urlInfo">
		<c:param name="author" value="keith" />
		<c:param name="google" value="love" />
	</c:url>
	<a href="${urlInfo }">GOOGLE</a>

 当然这个测试是不成功的!会跳到google的默认Error网页上(输出时仔细观察地址栏的地址);

此标签的属性是:

No属性名称EL描述
1value支持要执行的URL
2context支持如果要访问在同一个web容器下的其他资源时设置,必须以"/"开头
3var不支持存储导入的文件内容
4scope不支持定义var的保存范围,默认为page页面

<c:redirect />标签:

在JSTL中提供一个与response.sendRedirect()操作相似的标签(进行客户端跳转):

	<c:redirect url="main.jsp">
		<c:param name="name" value="keith" />
		<c:param name="url" value="http://google.com" />
	</c:redirect>

 此标签是完成客户端跳转,并且传递了两个参数!运行后观察地址栏URL!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值