美文网首页
JSTL标签

JSTL标签

作者: Mr_J316 | 来源:发表于2019-05-18 11:25 被阅读0次

2019-05-18

JSP标签库(JSP Standard Tag Library,JSTL)替代了过去页面中嵌入Java代码实现业务逻辑的模式,实现了业务逻辑与视图的隔离。
JSTL必须在支持Servlet/JSP的容器(如Tomcat)中才能运行。

使用步骤

将JSTL的jstl.jar和standard.jar复制到Web应用的WEB-INF/lib目录下。

在JSP页面首部加入如下语句:

  <%@ taglib prefix="标签库前缀" uri="标签库URI" %>
标签库名称 URI 使用的前缀
核心标签库 http://java.sun.com/jsp/jstl/core c
XML处理标签库 http://java.sun.com/jsp/jstl/xml x
国际化处理标签库 http://java.sun.com/jstl/fmt_rt fmt
SQL标签库 http://java.sun.com/jsp/jstl/sql sql
函数标签库 http://java.sun.com/jsp/jstl/functions fn

核心标签库

核心标签库提供基本的输入输出、流程控制功能。

set标签

定义变量或设置Java对象属性。语式方法有两种:

(1)定义变量

<c:set var="变量名" value="变量值" scope="page|request|session|application"></c:set>

变量值只能是Integer、Double、Float、String等数据类型,或是EL表达式,不能使用Java Bean或者Map等复杂类型。

变量值可以写在value属性里,也可以写在标签体内。下列两种写法等效:

<c:set var="var1" value="hello"></c:set>
<c:set var="var2">hello</c:set>

(2)设置对象属性

<c:set target="${对象名称}" property="属性名称" value="属性值" ></c:set>

目标对象必须是JavaBean或Map。如果是JavaBean,则property为JavaBean的一个属性;如果是Map,则propery为Map的一个key。

只能修改已经存在的JavaBean属性或Map,而不能创建JavaBean或者Map,如果target为null,会抛出异常。

与JavaBean标签作用和相同

<jsp:useBean id="user" class="com.web.model.Users" scope="page"></jsp:useBean>
<jsp:setProperty property="name" name="user" value="jevon"/> <%-- 使用javabean标签设置属性 --%>
<c:set target="${user }" property="sex">男</c:set>  <%-- 使用jstl标签设置属性 --%>

out标签

用来显示数据内容,类似于<%=%>。

<c:out value="数据值" default="默认值"/>

value属性必须是EL表达式或常量。

default属性指定默认值。如果value的值为null时,则显示default的值。

remove标签

用来移除指定范围的变量。

<c:remove var="变量名" scope="page|request|session|application">

catch标签

用于在JSP中捕获异常,并将异常信息保存于指定的变量中

<c:catch var="用于保存异常信息的变量名">
    可能出现异常的代码
</c:catch>

if标签

<c:if test = "判断式" [var="变量名" scope="page|request|session|application"] /></if>

test属性必须填写,表示进行判断的EL表达式。

属性var定义变量,存放判断后的结果。

scope表示var定义变量储存的范围。

当test中表达式的结果为true时,则会执行本体内容;如果为false则不会执行。

choose标签

<choose>本身只能作为父标签使用。其中可以有一个或多个<when>标签,有零个或多个<otherwise>标签。

与switch用法基本相同。若条件满足,则不再继续执行下面的分支

<c:choose>
    <c:when test=""> <!--条件一  -->
    </c:when>
    
    <c:when test=""> <!--条件二  -->
    </c:when>
    
    <c:when test=""> <!--条件三  -->
    </c:when>
    
    <c:otherwise> <!--其他情况  -->
    </c:otherwise>
</c:choose>

forEach标签

<c:forEach items="被遍历的集合" begin="开始索引(默认0)" end="结束索引(默认最后)" 
           step="增量(默认1)" var="当前变量名" varStatus="当前成员状态">
</c:forEach>

varStatus常用属性

  • index 当前成员的索引
  • count 共访问过的成员数量
  • first 当前是否为第一个成员
  • last 当前是否为最后一个成员

forTokens标签

用于在JSP中遍历字符串中由指定字符分隔的子串

<c:forTokens items="被遍历的集合" delims="分割符" begin="开始索引(默认0)" end="结束索引(默认最后)"
            step="增量(默认1)" var="当前变量名" varStatus="当前成员状态">
</c:forTokens>

import标签

可以把其他静态或动态的文件包含到当前JSP中。和JSP行为<jsp:include>区别是:<jsp:include>只能包含和自己在同一Web应用下的文件;而<import>除了能够包含和自己的同一Web 应用的文件外,也可以包含不同Web应用或者其他网站的文件。

<c:import url="文件地址"></c:import>

url标签

<c:url value="http://www.163.com" var="myurl" />
<a href="${myurl}">点击跳转</a>   

redirect标签

实现页面重定向功能。可以通过<param>标签传递参数。

<c:redirect url="second.jsp">
    <c:param name="userName" value="admin"></c:param>
</c:redirect>

函数标签库

必须在EL表达式内使用。

大小写转换

${fn:toLowerCase("ABC")} 
${fn:toUpperCase("abc")}

长度计算

fn:length(字符串|数组|集合)

${fn:length(lists)}

子串包含检测

contains标签:判断是否包含指定的字符串。
fn:contains(字符串,要查找的子串)
${fn:contains("ABC","AB")}
endsWith标签:判断某字符串是否以指定的子串结尾。
fn:endsWith(字符串,要查找的子串)
${fn:startsWith("ABCDE","ABC") }
startsWith标签:判断某字符串是否以指定子串开始。
fn:startsWith(字符串,要查找的子串)
${fn:endsWith("xxx.jpg","jpg") }

子串查找

${fn:indexOf("abc@163.com", "@") }

取子串

fn:substring(字符串,起始索引,结束索引)

在"abc"中取1到3的子串为: 
${fn:substring("abcdef",1,3)} 

去字符串空格

${fn:trim(" abc ")} 

分割字符串

字符串连接

将字符串数组以分隔符为界链接成字符串返回。

fn:join(字符串数组,分隔符) 

字符串替换

fn:replace (字符串,原始内容,替换后的内容)

${fn:replace("abc","a","xy")}

国际化标签库

formatDate标签

用于格式化日期

<%
   pageContext.setAttribute("CURDATE", new Date());
%>
<fmt:formatDate value="${CURDATE}" type="both"/> <br />
<fmt:formatDate value="${CURDATE}" type="date"/> <br /> 
<fmt:formatDate value="${CURDATE}" type="time"/> <br />
<fmt:formatDate value="${CURDATE}" type="date" dateStyle="default"/> <br />
<fmt:formatDate value="${CURDATE}" type="date" dateStyle="short"/> <br />
<fmt:formatDate value="${CURDATE}" type="date" dateStyle="medium"/> <br />
<fmt:formatDate value="${CURDATE}" type="date" dateStyle="long"/> <br />
<fmt:formatDate value="${CURDATE}" type="date" dateStyle="full"/> <br />
<fmt:formatDate value="${CURDATE}" type="time" timeStyle="default"/> <br />
<fmt:formatDate value="${CURDATE}" type="time" timeStyle="short"/> <br />
<fmt:formatDate value="${CURDATE}" type="time" timeStyle="medium"/> <br />
<fmt:formatDate value="${CURDATE}" type="time" timeStyle="long"/> <br />
<fmt:formatDate value="${CURDATE}" type="time" timeStyle="full"/> <br />
<fmt:formatDate value="${CURDATE}" type="both" pattern="yyyy-MM-dd, HH:mm:ss" />

formatNumber标签

用于格式化数字

<p>货币示例(货币符号和当前web服务器的 local设定有关)</p>
<fmt:formatNumber value="12" type="currency" pattern="$.00"/>  <br/>
<fmt:formatNumber value="12" type="currency" pattern="$.#"/> <br/> 
<fmt:formatNumber value="12" type="currency" pattern="¥.00"/> <br/>
<fmt:formatNumber value="12" type="currency" pattern="#0.00元"/> <br/>
<fmt:formatNumber value="12" type="currency"/>  

<p>普通数字示例</p>
<fmt:formatNumber value="123456.7891" pattern="#0.00"/>  <br/>
<fmt:formatNumber value="123456.7891" pattern="#,#00.00"/> <br/> 
<fmt:formatNumber value="0.7891" pattern="#.00"/>  <br/>
<fmt:formatNumber value="0.1234" type="percent" pattern="#0.00%"/><br/>
<fmt:formatNumber value="12" type="percent"  /><br/>
<fmt:formatNumber value="12" type="percent" pattern="#0.00%"/><br/>

相关文章

  • JAVA Web学习(18)___第12章JSTL标签

    第12章JSTL标签 12.1 JSTL标签库简介 根据JSTL标签所提供的功能,可以将其分为5个类别。 核心标签...

  • 【JavaWeb】JSTL标签库

    JSTL标签库 JSTL标准标签库;JSTL用于简化JSP开发,提高代码的可读性与可维护性;JSTL由SUN(Or...

  • jstl标签库

    一、jstl标签库 jstl是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言。js...

  • 2018-10-06

    JSTL概念 JSTL(JavaServer Pages Standard Tag Library,JSP标准标签...

  • 2018-10-06

    JSTL概念 JSTL(JavaServer Pages Standard Tag Library,JSP标准标签...

  • 【Java】【JSTL】标准包

    JSTL (JavaServerPages Standard Tag Library)JSP标准标签库 JSTL的...

  • 5.Jsp标签

    1.Jsp标签 1.Jsp标签的作用 2. Jsp标签分类 3.Jsp内置标签 4.JSTL标签 5.JSTL使用...

  • 2018-11-03

    学习jstl的标签

  • JSTL标签

    JSTL标签 JSTL是JSP的标准标签库,开发者可以使用JSTL实现JSP页面中逻辑处理。如循环、判断等、在JS...

  • 【转】IDEA中使用JSTL

    出处:在Intellij Idea中使用JSTL标签库 如果直接用jstl标签会报错:org.apache.jas...

网友评论

      本文标题:JSTL标签

      本文链接:https://www.haomeiwen.com/subject/bhozaqtx.html