JSTL用法详解

JSTL

JSTL( JSP Standard Tag Library ) 被称为JSP标准标签库。
开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。

使用方式

需先下载jar包

<!-- prefix属性用于指定库前缀 -->
<!-- uri属性用于指定库的标识 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

常用核心标签

输出标签

<c:out value="HelloWord!"></c:out>

设置标签

<c:set var="name" value="zhangfei" scope="page"></c:set>
<c:out value="${name}"></c:out><br>
<jsp:useBean id="person" class="com.szx.demo01.model.Person" scope="page"></jsp:useBean>
<s:set property="name" value="guanyu" target="${person}"></s:set>
<s:set property="age" value="30" target="${person}"></s:set>
<c:out value="${person.name}"></c:out><br>
<c:out value="${person.age}"></c:out>

删除标签

<c:set var="name" value="zhangfei" scope="page"></c:set>
<c:out value="${name}"></c:out><br>
<c:remove var="name"></c:remove>
<c:out value="${name}" default="无"></c:out><br>

单条件判断标签

<c:set var="age" value="15"></c:set>
<c:out value="${age}"></c:out><br>
<c:if test="${age >= 18}">
    <c:out value="已成年!"></c:out>
</c:if>

多条件判断标签

<c:set var="score" value="50" scope="page"></c:set>
<c:out value="${score}"></c:out><br>
<c:choose>
    <c:when test="${score > 60}">
        <c:out value="及格!"></c:out>
    </c:when>
    <c:when test="${score == 60}">
        <c:out value="60万岁!"></c:out>
    </c:when>
    <c:otherwise>
        <c:out value="明年我来祭拜你!"></c:out>
    </c:otherwise>
</c:choose>

循环标签

<%
    String[] strings = {"11","22","33","44"};
    pageContext.setAttribute("strings",strings);
%>

<c:forEach var="string" items="${strings}">
    <c:out value="${string}"></c:out>
</c:forEach>
<br>
<c:forEach var="string" items="${strings}" step="2">
    <c:out value="${string}"></c:out>
</c:forEach>
<br>
<c:forEach var="string" items="${strings}" begin="1" end="3">
    <c:out value="${string}"></c:out>
</c:forEach>

常用函数标签

<%@ taglib prefix=“fn” uri=“http://java.sun.com/jsp/jstl/functions” %>

<%
    pageContext.setAttribute("var","HelloWord!");
%>

${var}<br>
${fn:contains(var,"Hello")}<br>
${fn:toUpperCase(var)}<br>
${fn:toLowerCase(var)}<br>

常用格式化标签

<%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %>

<%
    Date date = new Date();
    pageContext.setAttribute("date",date);
%>
${date}<br>
<fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate><br>

自定义标签

编写标签类继承SimpleTagSupport类或TagSupport类并重写doTag方法或doStartTag方法

public class HelloTag extends SimpleTagSupport {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void doTag() throws JspException, IOException {
        //获取输出流
        JspWriter out = this.getJspContext().getOut();
        out.write("自定义标签!" + name);
        out.close();
    }
}
<?xml version="1.0" encoding="ISO-8859-1"?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
        version="2.1">

    <tlib-version>1.0</tlib-version>
    <short-name>my</short-name>
    <uri>http://mycompany.com</uri>

    <!-- Invoke 'Generate' action to add tags or functions -->

    <tag>
        <name>hello</name>
        <tag-class>com.szx.demo01.tag.HelloTag</tag-class>
        <body-content>empty</body-content>
        <attribute>
            <name>name</name>
            <required>true</required>
        </attribute>
    </tag>

</taglib>
<%@ taglib prefix="my" uri="http://mycompany.com" %>

<my:hello name="zhangfei"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值