JSP/Servlet-----JSTL之core标签库

Core标签库又称核心标签库,该标签库的工作是对于JSP页面一般处理的封装(共14个),被分为四类:

1、多用途核心标签

<c:out>

用于在JSP中显示数据

<c:out value="" [default=""] [escapeXml=""/>

<c:out value="" [escapeXml=""]>default value</c:out>

 

value:需要显示出来的值

default:若value的值为null,则显示default的值

escapeXml:是否过滤为xml文档。true(过滤为xml文档,即输入什么显示什么)。false(不过滤为xml文档,即将其中的htmlxml解析出来)

           如<c:out value=<a href=’xx’>aaa</a>” />

           escapeXml=true”显示<a href=’xx’>aaa</a>

           escapeXml=false”显示aaa

 

例:<c:out value="${pageScope.name }" default="default value"></c:out>

        <c:out value="${pageScope.name }">default value</c:out>

        <c:out value="<a href=‘#‘>aaa</a>" escapeXml="false" />                                    

<c:set>

(1)、将value的值储存至范围为scopevarName变量中

      <c:set var="" value="" [scope=""/>

      <c:set var="" [scope=""]>this is value</c:set>

 

      例:<c:set var="name" value="this is value" scope="page" />

              <c:set var="name" scope="request">this is value</c:set>

 

2)、将value的值储存至target对象的属性中

      <c:set target="" property="" value=""/>

      <c:set target="" property="">this is value</c:set>

 

      例:<jsp:useBean id="person" class="com.Person" scope="request"></jsp:useBean>

              <c:set target="${person}" property="name" value="123" />           

              <c:set target="${person}" property="name">123</c:set>

 

var:被赋值的变量名(可选)

value:值的信息,可以是EL表达式或常量

scope:变量的作用范围(可选)(默认:page)。取值pagerequestsessionapplication

propertyJavaBean实例的变量属性名称(可选)

target:被赋值的JavaBean实例的名称,若存在该属性则必须存在property属性(可选)

<c:remove>

用于删除存在于scope中的变量

<c:remove var="" [scope=""/>

 

 

var:需要被删除的变量名

scope:变量的作用范围(可选)(默认:删除全部)

<c:catch>

用来处理产生错误的异常状况,并将错误信息储存起来

<c:catch var="msg">……</c:catch>

 

var:用来储存错误信息的变量(可选),若无var属性的定义,那么仅仅捕捉异常而不做任何事情

 

<c:catch var="msg">

<%

Integer.parseInt("111g");

%>

 </c:catch>

 ${msg }

 

2、条件控制标签

<c:if>

<c:if test="" [var=""] [scope=""]>如果为真显示的内容</c:if>

 

test:判断条件

var:保存判断结果truefalse的变量(可选)

scope:变量的作用域(可选)(默认:page

 

例:<c:if test="${3>5}" var="isTrue">小于</c:if>

        <c:if test="${!isTrue}">大于 </c:if>

<c:choose><c:when><c:otherwise>

<c:choose>标签与java switch语句功能一样,switch中有case<c:choose>中有<c:when>switch中有default<c:choose>中有<c:otherwise>

 

例:<c:choose>

        <c:when test="${student.name==‘nan‘}"></c:when>

        <c:when test="${student.name==‘nv‘ }"></c:when>

        <c:otherwise>其他</c:otherwise>

        </c:choose>

 

3、循环控制标签

<c:forEach>

<c:forEach [items=""] [var="list"] [varStatus=""] [begin=""] [end=""] [step=""]>循环体</c:forEach>

 

items:进行循环的集合(可选)

var:做循环的对象变量名,若存在items属性,则表示循环集合中对象的变量名(可选)

varStatus:显示循环状态的变量(可选)

begin:定义遍历的开始位置,从0开始(可选)(默认:0

end:定义遍历的结束位置,从0开始(可选)(默认:集合个数-1

Step:循环的步长(可选)(默认:1

 

例:<c:forEach items="${lists }" var="list" varStatus="s" begin="0" end="3" step="2">

        <c:out value="${list }"></c:out>

        <c:out value="${s.count }"></c:out>  <!-- 遍历次数:从1开始 -->

        <c:out value="${s.index}"></c:out>   <!-- 下标:从0开始 -->

        <c:out value="${s.first}"></c:out>   <!-- 如果是第一个元素则返回true否则返回false -->

        <c:out value="${s.last}"></c:out>    <!-- 如果是最后一个元素则返回true否则返回false -->

        </c:forEach>

 

<c:forEach var="list" begin="1" end="10" [step="2"]>${list }</c:forEach>

<c:forTokens>

根据某个分隔符分隔指定字符串,相当于java.util.StringTokenizer

<c:forTokens items="" delims="" [var=""] [begin=""] [end=""] [step=""] [varStatus=""]>循环体</c:forTokens>

 

items:进行分隔的EL表达式或常量

delims:分隔符

 

<c:forTokens items="aa,bb,cc,dd" delims="," var="li">

 ${li }

 </c:forTokens>

 

4URL相关标签

<c:import>

包含另一个JSP页面到本页面;相当于<jsp:include />

<c:import url="" [charEncoding=""] [context=""] [scope=""] [var=""] [varReader=""/>

 

url:需要导入页面的URL,可以是相对路径和绝对路径,还可以是其他主机资源

charEncoding:导入页面的字符集(默认:ISO-8859-1

context:导入其他Context下的页面,出现context属性时,必须以“/”开头,此时url属性也要以“/”开头(默认:当前应用程序。如/webDemo1

scopevar属性的作用域(默认:page

var:用于储存所引入的文本的变量(默认:print to page

varReader:用于提供java.io.Reader对象的变量,用于读取资源

 

例:

 

在同一Context下导入

<c:import url="/b.jsp" />

<c:import url="../c.jsp" />

 

在不同的Context下导入

在应用demo1a.jsp中导入demo2应用根目录下的a.jsp

<c:import url="/a.jsp" context="/demo2" />

需把两个(demo1demo2)两个应用在server.xml文件中进行配置:

<Context path="/demo1" docBase="C:\demo1" crossContext="true" />

<Context path="/demo2" docBase="C:\demo2" crossContext="true" />

 

导入任一URL

<c:import url="http://www.baidu.com" />

<c:import url="http://localhost:8080/webDemo/pages1/c.jsp" />

<c:url>

URL格式化为一个字符串,然后储存在一个变量中。这个标签在需要的时候会自动重写URLVar属性用于储存格式化后的URL

只是用于调用response.encodeURL()方法的一种可选的方法。它真正的优势在于提供了合适的URL编码,包括<c:param>中指定的参数

<c:url value="" [context=""] [scope=""] [var=""]/>

 

value:基础URL

context:与<c:import>标签中的context一样(默认:当前应用程序)

 

例:<a href="<c:url value=‘next.jsp‘/>">next</a>

<c:redirect>

用于页面重定向

<c:redirect url="" [context=""]/>

<c:param>

用于在<c:url><c:redirect>等标签中指定参数,且与URL编码相关

<c:param name="" [value=""/>




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。