读书人

JSTL惯用标签之大聚集-中

发布时间: 2012-10-27 10:42:26 作者: rapoo

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),及Map3varStatus不支持用于存放当前对象的成员信息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支持要执行的URL2context支持如果要访问在同一个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!

读书人网 >JavaScript

热点推荐