前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSTL的核心库简单使用

JSTL的核心库简单使用

作者头像
the5fire
发布2019-02-28 10:35:14
7880
发布2019-02-28 10:35:14
举报

其实看了前面的那篇文章 《JSTL的EL表达式简单使用》 <http://www.the5fire.com/JSTL的EL表达式简单使用.html>_ ,再结合说明文档使用JSTL已经基本可行了,不过由于EL在JSTL中实在是比较简单,因此很有必要说一下JSTL的核心库的使用。

EL就像是被封装好的函数,而核心库中的表达式像是一个新的语言,包括基本的语句。废话不多说了,还是代码为主。 差点忘了,这里需要引入两个jar包,从这下载: http://www.apache.org/dist/jakarta/taglibs/standard/binaries/,然后在使用JSTL核心库的JSP页面要声明一下,看下面具体的JSP代码吧。

首先Servlet:

.. code:: java

package com.jstl;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 演示JSTL核心库
 * @author 胡阳
 *
 */
public class JstlCoreServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //普通字符串
        request.setAttribute("hello", "hello world");

        //HTML
        request.setAttribute("welcome", "<font color=red>the5fire的技术博客</font>");

        //条件控制
        request.setAttribute("v1", 10);
        request.setAttribute("v2", 20);

        //对象数组
        //对象数组
        User[] users = new User[9];
        for (int i = 0; i < users.length; i++) {
            users[i] = new User();
            users[i].setUsername("胡阳" + i);
            users[i].setAge(23 + i);
        }
        request.setAttribute("users", users);

        request.getRequestDispatcher("/jstl_core.jsp").forward(request, response);
    }


}

然后关于xml的配置,你看上篇文章吧,比较简单

建立JSP页面:jstl_core.jsp:(要注意第二行的这个引入)

.. code:: html

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>jstl核心库</title>
</head>
<body>
    <h1>jstl核心库</h1>
    <hr>
    <li>采用c:out标签</li>
    hello(使用标签):<c:out value="123"/><br>
    hello(使用标签):<c:out value="hello"/><br>
    hello(使用标签):<c:out value="${hello }"/><br>
    hello(使用EL表达式):${hello }<br>
    hello(default):${hello123 }<br>
    hello(使用缺省值):<c:out value="${hello123 }" default="没有纸"/><br>
    hello(使用缺省值):<c:out value="${hello123 }">没有纸</c:out><br>
    welcome(使用EL表达式):${welcome }<br>
    welcome(使用标签,escapeXml):<c:out value="${welcome }" escapeXml="true"/><br>
    welcome(使用标签,escapeXml):<c:out value="${welcome }" escapeXml="false"/><br>
    <p>
    <li>测试c:set,c:remove</li><br>
    <c:set value="root" var="userid"/>
    userid:${userid }<br>
    <c:remove var="userid"/>

    <p>
    <li>条件控制标签:c:if</li><br>
    <c:if test="${v1 lt v2 }">
        v1小于v2<br>
    </c:if>

    <p>
    <li>条件控制标签:c:choose,c:when,c:otherwise</li><br>
    <c:choose>
        <c:when test="${v1 gt v2 }">
            v1大于v2<br>
        </c:when>
    </c:choose>
    <c:choose>
        <c:when test="${empty userList }">
            没有符合条件的数据<br>
        </c:when>
        <c:otherwise>
            存在用户数据<br>
        </c:otherwise>
    </c:choose>
    <p>
    <li>演示循环控制标签:forEach</li><br>
    <h3>采用jsp脚本显示</h3>

        <table border="1">
            <tr>
                <td>用户名称</td>
                <td>年龄</td>
            </tr>
            <c:choose>
                <c:when test="${empty users }">
                    <tr>
                        <td colspan="3">没有符合条件的数据</td>
                    </tr>
                </c:when>
                <c:otherwise>   
                    <c:forEach items="${users }" var="user">
                        <tr>
                            <td>${user.username }</td>
                            <td>${user.age }</td>
                        </tr>
                    </c:forEach>

                </c:otherwise>
            </c:choose>
        </table>
    <h3>采用forEach标签,varstatus</h3>
    <table border="1">
            <tr>
                <td>用户名称</td>
                <td>年龄</td>
            </tr>
            <c:choose>
                <c:when test="${empty users }">
                    <tr>
                        <td colspan="3">没有符合条件的数据</td>
                    </tr>
                </c:when>
                <c:otherwise>   
                    <c:forEach items="${users }" var="user" varStatus="vs">
                        <c:choose>
                            <c:when test="${vs.count mod 2 == 0 }">
                                <tr bgcolor=red>
                            </c:when>
                            <c:otherwise>
                                <tr bgcolor=blue>
                            </c:otherwise>
                        </c:choose>
                            <td>${user.username }</td>
                            <td>${user.age }</td>
                        </tr>
                    </c:forEach>

                </c:otherwise>
            </c:choose>
        </table>
</body>
</html>

在原先的index页面中添加:

.. code:: html

<a href="servlet/JstlCoreServlet">测试核心库</a>

然后启动index页面,完了

其实这里面在对JSP核心库的引用进行声明时,你需要看一下standard.jar下面的META-INF的tld文件。比如说你要使用c标签,你就看一下c.tld中的uri。这个是在jsp页面声明时需要使用的。

如果你有足够的好奇心,我想你现在应该已经发现了JSTL的一些秘密,到底是什么秘密呢?下篇文章再说。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-12-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档