`

jsp标准标签库

阅读更多
1. jsp标准标签库

1) JSTL引入(JSP Standard Tag Library)

1.1 导入jar包
jstl.jar
standard.jar

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


2) JSTL示例

helloWorldJSTL.jsp
<c:out value="jstl你好"></c:out>


3) JSTL核心标签库

People.java

package com.andrew.model;
public class People {
    private int id;
    private String name;
    private int age;
    public People(){}
    public People(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    // getter and setter
}


c:out 内容输出标签;

c_out.jsp

<% pageContext.setAttribute("people","张三"); %>
<h2><c:out value="${people}"></c:out></h2>
<h2><c:out value="${people2}" default="某人"></c:out></h2>

http://localhost:8080/HeadFirstJspServletChap08/c_out.jsp
张三
某人


c:set 用来设置4中属性范围值的标签;

c_set.jsp

<c:set var="people" value="张三" scope="request"></c:set>
<h2><c:out value="${people}"></c:out></h2>
<jsp:useBean id="people2" class="com.andrew.model.People" scope="page"></jsp:useBean>
<c:set property="id" target="${people2 }" value="007"></c:set>
<c:set property="name" target="${people2 }" value="王二小"></c:set>
<c:set property="age" target="${people2 }" value="16"></c:set>
<h2>编号:${people2.id }</h2>
<h2>姓名:${people2.name }</h2>
<h2>年龄:${people2.age }</h2>

http://localhost:8080/HeadFirstJspServletChap08/c_set.jsp
张三
编号:7
姓名:王二小
年龄:16


c:remove 用来删除指定范围中的属性;

c_remove.jsp

<c:set var="people" value="张三" scope="request"></c:set>
<h2><c:out value="${people}" default="没人啊"></c:out></h2>
<c:remove var="people" scope="request"/>
<h2><c:out value="${people}" default="没人啊"></c:out></h2>

http://localhost:8080/HeadFirstJspServletChap08/c_remove.jsp
张三
没人啊


c:catch 用来处理程序中产生的异常;

c_catch.jsp

<c:catch var="errMsg">
    <%
        int a=1/0;
    %>
</c:catch>
<h2>异常信息:${errMsg }</h2>

http://localhost:8080/HeadFirstJspServletChap08/c_catch.jsp
异常信息:java.lang.ArithmeticException: / by zero


c:if 用来条件判断;

c_if.jsp

<jsp:useBean id="people" class="com.andrew.model.People" scope="page"></jsp:useBean>
<c:set property="id" target="${people }" value="007"></c:set>
<c:set property="name" target="${people }" value="王二小"></c:set>
<c:set property="age" target="${people }" value="16"></c:set>
<c:if test="${people.name=='王二小' }" var="r" scope="page">
    <h2>是王二小</h2>
</c:if>
<c:if test="${people.age<18 }">
    <h2>是未成年</h2>
</c:if>

http://localhost:8080/HeadFirstJspServletChap08/c_if.jsp
是王二小
是未成年


c:choose、c:when、c:otherwise 用来多条件判断;

c_choose.jsp

<jsp:useBean id="people" class="com.andrew.model.People" scope="page"></jsp:useBean>
<c:set property="id" target="${people }" value="007"></c:set>
<c:set property="name" target="${people }" value="王二小"></c:set>
<c:set property="age" target="${people }" value="19"></c:set>
<c:choose>
    <c:when test="${people.age<18 }">
        <h2>小于18</h2>
    </c:when>
    <c:when test="${people.age==18 }">
        <h2>等于18</h2>
    </c:when>
    <c:otherwise>
        <h2>大于18</h2>
    </c:otherwise>
</c:choose>

http://localhost:8080/HeadFirstJspServletChap08/c_choose.jsp
大于18


c:forEach 用来遍历数组或者集合;

c_forEach.jsp

<%@ page import="com.andrew.model.*"%>
<%@ page import="java.util.*"%>
<%
    String dogs[]={"小黑","小黄","小白","小小"};
    pageContext.setAttribute("dogs",dogs);
%>
<c:forEach var="dog" items="${dogs }">
    ${dog }
</c:forEach>
<hr/>
<c:forEach var="dog" items="${dogs }" step="2">
    ${dog }
</c:forEach>
<hr/>
<c:forEach var="dog" items="${dogs }" begin="1" end="2">
    ${dog }
</c:forEach>
<hr/>
<%
    List<People> pList = new ArrayList<People>();
    pList.add(new People(1,"张三",10));
    pList.add(new People(2,"李四",20));
    pList.add(new People(3,"王五",30));
    pageContext.setAttribute("pList",pList);
%>
<table>
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
    </tr>
    <c:forEach var="p" items="${pList }">
        <tr>
            <td>${p.id }</td>
            <td>${p.name }</td>
            <td>${p.age }</td>
        </tr>
    </c:forEach>
</table>

http://localhost:8080/HeadFirstJspServletChap08/c_forEach.jsp
小黑 小黄 小白 小小
小黑 小白
小黄 小白
编号 姓名 年龄
1 张三 10 
2 李四 20 
3 王五 30 


c:fortokens 分隔输出;

c_forTokens.jsp

<%
    String str1="www.andrew.com";
    String str2="张三,李四,王五";
    pageContext.setAttribute("str1",str1);
    pageContext.setAttribute("str2",str2);
%>
<c:forTokens items="${str1 }" delims="." var="s1">
    ${s1 }
</c:forTokens>
<hr/>
<c:forTokens items="${str2 }" delims="," var="s2">
    ${s2 }
</c:forTokens>

http://localhost:8080/HeadFirstJspServletChap08/c_forTokens.jsp
www andrew com
张三 李四 王五


c:import 导入页面;

c_import.jsp

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


c:url 生成一个url地址;

c_url.jsp

<c:url value="http://www.baidu.com" var="url">
    <c:param name="name" value="baidu"></c:param>
    <c:param name="age" value="26"></c:param>
</c:url>
<a href="${url }">百度</a>

http://localhost:8080/HeadFirstJspServletChap08/c_url.jsp
百度 


c:redirect 客户端跳转

c_redirect.jsp

<c:redirect url="target.jsp">
    <c:param name="name" value="xiaofeng"></c:param>
    <c:param name="age" value="26"></c:param>
</c:redirect>

target.jsp

<h2>姓名:${param.name }</h2>
<h2>年龄:${param.age }</h2>

http://localhost:8080/HeadFirstJspServletChap08/c_redirect.jsp
http://localhost:8080/HeadFirstJspServletChap08/target.jsp?name=xiaofeng&age=26
姓名:xiaofeng
年龄:26


4) JSTL国际化标签库

导入standard.jar
导入jstl.jar

fmt:setLocale 设定用户所在的区域;
fmt:formatDate 对日期进行格式化;
fmt:requestEncoding 设置所有的请求编码;
fmt:bundle fmt:message 读取国际化资源;
fmt:formatNumber 格式化数字;
fmt:timeZone 设置临时时区;


fmt_setLocale.jsp

<%@ page import="java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%
    pageContext.setAttribute("date",new Date());
%>
中文日期:
<fmt:setLocale value="zh_CN"/>
<fmt:formatDate value="${date }"/>
<hr/>
英文日期:
<fmt:setLocale value="en_US"/>
<fmt:formatDate value="${date }"/>

fmt_formatDate.jsp

<%@ page import="java.util.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!-- value:数值 ;  type:数值类型;  pattern:格式 -->
<%
    Date date=new Date();
    pageContext.setAttribute("date",date);
%>
<fmt:formatDate value="${date }" pattern="yyyy-MM-dd HH:mm:ss"/>
<hr/>
<fmt:formatDate value="${date }" pattern="yyyy-MM-dd"/>

fmt_setrequestEncoding.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:requestEncoding value="UTF-8"/>

info_en_US.properties
name=张三
info=Current user{0}:Welcome to use our system
info_zh_CN.properties
name=\u5c0f\u950b
info=\u5f53\u524d\u7528\u6237{0}:\u6b22\u8fce\u4f7f\u7528\u672c\u7cfb\u7edf

fmt_bundle.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:setLocale value="zh_CN"/>
<fmt:bundle basename="info">
    <fmt:message key="name" var="userName"/>
</fmt:bundle>
<h2>姓名:${userName }</h2>
<fmt:bundle basename="info">
    <fmt:message key="info" var="infomation">
        <fmt:param value="<font color='red'>张三</font>"/>
    </fmt:message>
</fmt:bundle>
<h2>信息:${infomation }</h2>
<hr/>
<fmt:setLocale value="en_US"/>
<fmt:bundle basename="info">
    <fmt:message key="name" var="userName"/>
</fmt:bundle>
<h2>姓名:${userName }</h2>
<fmt:bundle basename="info">
    <fmt:message key="info" var="infomation">
        <fmt:param value="<font color='red'>张三</font>"/>
    </fmt:message>
</fmt:bundle>
<h2>信息:${infomation }</h2>

fmt_formatNumber.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!-- value:数值 ;  type:数值类型;  pattern:格式 -->
<fmt:formatNumber value="12" type="currency" pattern="$.00"/> 
<fmt:formatNumber value="12" type="currency" pattern="$.0#"/>
<fmt:formatNumber value="1234567890" type="currency"/> 
<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/>

fmt_timeZone.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!-- value:数值 ;  type:数值类型;  pattern:格式 -->
<%
    Date date=new Date();
    pageContext.setAttribute("date",date);
%>
当前时间:<fmt:formatDate value="${date }" pattern="yyyy-MM-dd HH:mm:ss"/>
<hr/>
格林尼治时间:
<fmt:timeZone value="GMT">
   <fmt:formatDate value="${date }" pattern="yyyy-MM-dd HH:mm:ss"/>
</fmt:timeZone>


5) JSTL SQL标签库

导入mysql-connector-java-3.1.12-bin.jar

sql:setDataDource 设置JDBC连接;
sql:query 数据库查询操作;
sql:update 数据库添加,修改,删除操作;
sql:transaction 数据库事务;


sql_setDataSource.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<h1>设置JDBC连接</h1>
<sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_jstl" user="root" password="123456" />

sql_query.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<h1>设置JDBC连接</h1>
<sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_jstl" user="root" password="123456" />
<sql:query var="result">
    select * from t_student;
</sql:query>
<h2>总记录数:${result.rowCount }</h2>
<table>
    <tr>
        <th>编号</th>
        <th>学号</th>
        <th>姓名</th>
        <th>出生日期</th>
        <th>性别</th>
    </tr>
    <c:forEach var="student"  items="${result.rows }">
    <tr>
        <td>${student.id }</td>
        <td>${student.stuNo }</td>
        <td>${student.stuName }</td>
        <td>${student.birthday }</td>
        <td>${student.sex }</td>
    </tr>
    </c:forEach>
</table>

sql_update001.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<h1>设置JDBC连接</h1>
<sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_jstl" user="root" password="123456"/>
<h1>添加数据</h1>
<sql:update var="result" >
    insert into t_student values(null,"008","张三","1991-1-1","男");
</sql:update>

sql_update002.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<h1>设置JDBC连接</h1>
<sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_jstl" user="root" password="123456"/>
<h1>修改数据</h1>
<sql:update var="result" >
    update t_student set stuNo="010",sex="未知" where id=6
</sql:update>

sql_update003.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<h1>设置JDBC连接</h1>
<sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_jstl" user="root" password="123456"/>
<h1>删除数据</h1>
<sql:update var="result" >
    delete from t_student where id=6
</sql:update>

sql_transaction.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<h1>设置JDBC连接</h1>
<sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/db_jstl" user="root" password="123456"/>
<h1>事务</h1>
<sql:transaction>
    <sql:update var="result" >
        insert into t_student values(null,"008","哈喽","1991-1-1","男");
    </sql:update>
</sql:transaction>


6) JSTL XML标签库

导入xalan.jar

x:parse 解析xml;
x:out 输出xml文件的内容;
x:set 把xml读取的内容保存到指定的属性范围;
x:if 判断指定路径的内容是否符合判断的条件;
x:choose x:when x:otherwise 多条件判断;
x:forEach 遍历


usersInfo.xml

<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user>
        <name id="n1">张三</name>
        <birthday>2011-1-1</birthday>
    </user>
</users>

usersInfo2.xml

<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user>
        <name id="n1">张三</name>
        <birthday>2011-1-1</birthday>
    </user>
    <user>
        <name id="n2">王五</name>
        <birthday>2011-1-2</birthday>
    </user>
    <user>
        <name id="n3">赵六</name>
        <birthday>2011-1-3</birthday>
    </user>
</users>

xml_parse.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<c:import var="usersInfo" url="usersInfo.xml" charEncoding="UTF-8"/>
<x:parse var="usersInfoXml" doc="${usersInfo }"/>

xml_out.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<c:import var="usersInfo" url="usersInfo.xml" charEncoding="UTF-8"/>
<x:parse var="usersInfoXml" doc="${usersInfo }"/>
<h2>姓名:<x:out select="$usersInfoXml/users/user/name"/>
(ID:<x:out select="$usersInfoXml/users/user/name/@id"/>)</h2>
<h2>出生日期:<x:out select="$usersInfoXml/users/user/birthday"/></h2>

xml_set.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<c:import var="usersInfo" url="usersInfo.xml" charEncoding="UTF-8"/>
<x:parse var="usersInfoXml" doc="${usersInfo }"/>
<x:set var="userInfoXml" select="$usersInfoXml/users/user"/>
<h2>姓名:<x:out select="$userInfoXml/name"/></h2>

xml_if.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<c:import var="usersInfo" url="usersInfo.xml" charEncoding="UTF-8"/>
<x:parse var="usersInfoXml" doc="${usersInfo }"/>
<x:if select="$usersInfoXml/users/user/name/@id='n1'">
    <h2>有编号是n1的user信息</h2>
</x:if>

xml_choose.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<c:import var="usersInfo" url="usersInfo.xml" charEncoding="UTF-8"/>
<x:parse var="usersInfoXml" doc="${usersInfo }"/>
<x:choose>
    <x:when select="$usersInfoXml/users/user/name/@id='n2'">
        <h2>有编号是n2的user信息</h2>
    </x:when>
    <x:otherwise>
        <h2>没有编号是n2的user信息</h2>
    </x:otherwise>
</x:choose>

xml_forEach.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<c:import var="usersInfo" url="usersInfo2.xml" charEncoding="UTF-8"/>
<x:parse var="usersInfoXml" doc="${usersInfo }"/>
<x:forEach select="$usersInfoXml/users/user" var="userInfoXml">
    <h2>姓名:<x:out select="$userInfoXml/name"/>&nbsp;出生日期:<x:out select="$userInfoXml/birthday"/></h2>
    <hr/>
</x:forEach>


7) JSTL函数标签库

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

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%
    pageContext.setAttribute("info","www.abcd1234.com");
%>
<h2>查找abcd1234位置:${fn:indexOf(info,"abcd1234")}</h2>
<h2>判断abcd1234是否存在:${fn:contains(info,"abcd1234")}</h2>
<h2>截取:${fn:substring(info,0,5)}</h2>
<h2>拆分:${fn:split(info,".")[1]}</h2>
分享到:
评论

相关推荐

    JSP标准标签库

    ### JSP标准标签库(JSTL)详解 #### 一、JSTL简介 JSTL(JSP Standard Tag Library,JSP标准标签库)是由Sun Microsystems发布的一组用于简化JSP页面开发的标准标签库。它允许开发者使用预定义的标签来执行常见的...

    jsp标准标签库(各种标准标签库)

    ### JSP标准标签库(JSTL)详解 #### 6.1 JSTL简介 JSTL(JSP Standard Tag Library),即JSP标准标签库,是由Sun Microsystems提出并由Apache Jakarta组织维护的一种用于简化JSP开发的技术。JSTL提供了一套标准化...

    JSP标准标签库实例

    【JSP标准标签库实例】 JSP标准标签库(JSTL,JspServer Pages Standdard Tag Library)是由Sun Microsystems公司开发的一种用于简化JSP页面开发的组件。它的核心理念是通过提供预定义的标签集合,使得开发者可以...

    jsp标准标签库的使用

    JSP标准标签库(JSTL)是JavaServer Pages Standard Tag Library的缩写,它是Java EE标准的一部分,用于简化JSP页面中的代码,提高可读性和维护性。JSTL提供了一系列预定义的标签,这些标签覆盖了常见任务,如控制流...

    JSP 标准标签库(c标签库)

    **JSP标准标签库(JSTL)与C标签库详解** JSP(JavaServer Pages)标准标签库(JSTL)是Java EE平台的一部分,它提供了一套标准的标签来处理常见任务,如迭代、条件判断、XML处理等,以简化JSP页面的编写,提高代码...

    JSP标准标签库(jstl)

    JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、...它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作。

    jsp标准标签库使用指南

    ### JSP标准标签库(JSTL)使用指南 JSP标准标签库(JSTL,JavaServer Pages Standard Tag Library)自JSP 1.1版本起便被引入,旨在简化JSP页面的开发过程,减少脚本代码的使用,提高代码的可读性和维护性。JSTL提供...

    JSTL(JSP标准标签库)介绍.doc

    JSTL,全称JavaServer Pages Standard Tag Library,是JSP的一种标准标签库,旨在简化JSP页面的开发,提高代码的可读性和可维护性。JSTL由Apache Jakarta组织维护,它提供了多种功能标签,包括核心标签、XML处理标签...

    JSTL(jsp标准标签库)

    ### JSTL(JSP标准标签库):增强JSP页面功能的关键技术 JSTL,全称为JSP Standard Tag Library(JSP标准标签库),是JavaServer Pages(JSP)技术的重要补充,旨在简化JSP页面的开发,提供了一系列预定义的、可...

    jsp标准标签库stl

    **JSP标准标签库STL**,全称为JavaServer Pages Standard Tag Library,是JSP的一种扩展,旨在简化网页开发,提高代码的可读性和可维护性。STL是由Apache软件基金会的Jakarta项目开发的,它包含了一系列预定义的标签...

    jsp标准标签库 教案

    本章旨在深入学习和理解JavaServer Pages (JSP) 标准标签库(JSP Standard Tag Library, 简称JSTL),它是一组预定义的标签,用于简化JSP开发,提高代码的可读性和可维护性。通过学习JSTL,开发者可以避免在JSP页面...

    JSP标准标签库.ppt

    总的来说,JSP标准标签库通过提供一套标准化的标签,简化了JSP开发过程,降低了复杂度,提高了开发效率。在实际开发中,开发者可以根据需求选择使用JSTL提供的不同标签,以实现各种功能,如控制流程、处理数据、展现...

    经典入门教程:JSP标准标签库

    **JSP标准标签库(JSTL)**是Java服务器页面(JSP)技术的一个重要扩展,由SUN公司发布,旨在提供一个更加简洁、可读性更强的JSP页面开发方式。传统的JSP开发中,程序员通常使用scriptlet(嵌入在JSP页面中的Java...

    web开发必备:JSP标准标签库JSP的语法介绍及jsp页面导入标签方法.docx

    ### JSP标准标签库(JSTL)概览 在Web开发领域中,JavaServer Pages (JSP) 是一种广泛使用的服务器端技术,用于生成动态网页。为了提高开发效率和简化JSP页面的编写,JSP标准标签库 (JSTL) 应运而生。 #### JSTL的...

Global site tag (gtag.js) - Google Analytics