JSPGen软件开发框架第四版 开发手册

8.1常用标签

JSTL 核心标签库标签共有13个,功能上分为4类:
A、表达式控制标签:outsetremovecatch

B、流程控制标签:ifchoosewhenotherwise

C、循环标签:forEachforTokens

DURL操作标签:importurlredirect

 

使用标签时,一定要在jsp文件头部加入以下代码:

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

 

下面对几个比较常用标签进行举例说明:

1<c:if>

【语法】<c:if test="条件" >条件成立则输出</c:if>

【示例】

<c:if test="${2>1}"> true </c:if>

<c:if test="${2<1}"> false </c:if>

 

2<c:choose> <c:when> <c:otherwise>
三个标签通常嵌套使用,第一个标签在最外层,最后一个标签在嵌套中只能使用一次。

【示例】

<c:set var="score">85</c:set>

<c:choose>

      <c:when test="${score>=90}">你的成绩为优秀!</c:when>

      <c:when test="${score>=70 && score<90}">您的成绩为良好! </c:when>

      <c:when test="${score>60 && score<70}">您的成绩为及格</c:when>

      <c:otherwise> 对不起,您没有通过考试!</c:otherwise>

</c:choose>

 

3<c:forEach>

【语法】<c:forEach var="name" items="Collection"

[varStatus="statusName"] [begin="begin"] [end="end"] [step="step"]>

</c:forEach>

该标签根据循环条件遍历集合 Collection 中的元素,中括号里参数为可选参数;

var 用于存储从集合中取出的元素;items 指定要遍历的集合;

varStatus 用于存放集合中元素的信息, varStatus 一共有4种状态属性。

【示例】

<%@ page contentType="text/html;charset=UTF-8" %>

<%@page import="java.util.List"%>

<%@page import="java.util.ArrayList"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<h4>forEach
实例</h4><hr>

<%

List a=new ArrayList();

a.add("贝贝");      a.add("晶晶");      a.add("欢欢");      a.add("莹莹");      a.add("妮妮");

request.setAttribute("a", a);

%>
<B>
不指定beginend的迭代:</B><br>
<c:forEach var="fuwa" items="${a}">&nbsp; ${fuwa}<br></c:forEach>
<B>
指定beginend的迭代: </B><br>
<c:forEach var="fuwa" items="${a}" begin="1" end="3" step="2">
  ${fuwa}<br>
</c:forEach>
<B>
输出整个迭代的信息: </B><br>
<c:forEach var="fuwa" items="${a}" begin="3" end="4" step="1" varStatus="s">
   ${fuwa}
的四种属性:<br>
    
所在位置,即索引: ${s.index}<br>
    
总共已迭代的次数: ${s.count}<br>
    
是否为第一个位置: ${s.first}<br>
    
是否为最后一个位置: ${s.last}<br>
</c:forEach>

显示效果:

 

4<c:import>

<jsp:include>的区别是后者只能包含同一个web应用中的文件

前者可以包含其他web应用中的文件,甚至是网络上的资源。

【语法】

<c:import url="url"

[context="context"] [value="value"] [scope="..."] [charEncoding="encoding"]>

</c:import>

【示例】

<%@ page contentType="text/html;charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<h4>import
实例</h4>
<h4>
相对路径引用的实例,引用本应用中的文件</h4>
<c:import url="a1.txt" charEncoding=" UTF-8" /> <hr>
<h4>
使用字符串输出、相对路径引用的实例,并保存在session范围内</h4>
<c:import var="myurl" url="a1.txt" scope="session" charEncoding="UTF-8">

</c:import>
${myurl}

 

注意:URL路径有个绝对路径和相对路径之分。

相对路径:<c:import url="a.txt"/>a.txt必须与当前文件放在同一个文件目录下;

如果以"/"开头,表示存放在项目程序的根目录下: <c:import url="/b.txt">

如要访问同一个Tomcat容器下的其他项目,就要用context属性。

访问demo2下的index.jsp,则:<c:import url="/index.jsp" context="/demo2" />




Copyright ©2006 - 2014 JSPGen.Com.All rights reserved.