JSTL学习

来源:互联网 发布:租云服务器除了阿里云 编辑:程序博客网 时间:2024/04/29 05:45

JSTL标签(jsp标准标签库)
包括5类标签库
1、core (核心标签库,包括所有通用标签,流控制标签、循环控制标签)
2、fmt (格式化标签、国际化标签)
3、fn (函数标签库)
4、XML (XML操作的标签库)
5、SQL (数据库操作标签库)

需要的jar包:standard.jar和jstl.jar。使用任何库,你必须在每个JSP文件中的头部包含标签

JSTLStudy_xml

需要导入jar包
在使用xml标签前,你必须将XML 和 XPath 的相关包拷贝至你的<Tomcat 安装目录>\lib下:
XercesImpl.jar
下载地址: http://www.apache.org/dist/xerces/j/
xalan.jar
下载地址: http://xml.apache.org/xalan-j/index.html

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%><%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%><%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><!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=UTF-8"><title>Insert title here</title></head><body>    <c:import url="school.xml" var="schoolXml"></c:import>    ${schoolXml}    <br />    <x:parse xml="${schoolXml }" var="output"></x:parse>    <!-- 下标从1开始 -->    <x:out select="$output/school/students[1]/student[1]/name" />    <br />    <x:choose>        <x:when            select="$output/school/students[1]/student[1]/name = 'zhangsan'">            <c:out value="name is zhangsan"></c:out>        </x:when>        <x:otherwise>            <c:out value="name is not zhangsan"></c:out>        </x:otherwise>    </x:choose>    <br />    <c:set var="xmltext">        <books>             <book>                 <name>Padam History</name>                <author>ZARA</author>                <price>100</price>             </book>             <book>                 <name>Great Mistry</name>                 <author>NUHA</author>                <price>2000</price>             </book>         </books>    </c:set>    <x:parse xml="${xmltext}" var="output" />    <x:set var="fragment" select="$output//book" />    <b>The price of the second book</b>:    <c:out value="${fragment}" />    <br><%--    <x:set var="student1" select="$output//school"/> --%><%--    <x:out select="${student1}"/> --%></body></html>

JSTLStudy_sql

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%><%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%><%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><!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=UTF-8"><title>Insert title here</title></head><body>    <sql:setDataSource        var="MyDataSource"        driver="com.mysql.jdbc.Driver"        user="root"        password="root"        url="jdbc:mysql://localhost:3306/jstl"    />    <sql:query var="queryId_1" sql="select username,password from user where id=1"    dataSource="${MyDataSource }"></sql:query>    <c:out value="${queryId_1.rows[0].password }"></c:out>    <br/>    <%--<sql:dateParam value=""/> --%>    <sql:update dataSource="${MyDataSource }"                 sql="update user set username='change_zhangsan' where id=?"                var="updateRows">        <sql:param value="2"></sql:param>    </sql:update>    <c:out value="updateRows=${updateRows }"></c:out>    <!--     sql:transaction标签用来将sql:query标签和sql:update标签封装至事务中。    可以将大量的sql:query和sql:update操作装入sql:transaction中,使它们成为单一的事务。    它确保对数据库的修改不是被提交就是被回滚。 -->    <%--sql:transaction></sql:transaction --%></body></html>

JSTLStudy_fn

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%><%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%><%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><!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=UTF-8"><title>Insert title here</title></head><body>    <!-- fn:contains()  测试输入的字符串是否包含指定的子串 -->    <c:out value="${fn:contains('helloworld','hello') }"/>    <!-- fn:containsIgnoreCase()    测试输入的字符串是否包含指定的子串,大小写不敏感 -->    <c:out value="${fn:containsIgnoreCase('helloworld','heLLo') }"/>    <!-- fn:startsWith()    测试输入字符串是否以指定的前缀开始         fn:endsWith()  测试输入的字符串是否以指定的后缀结尾 -->    <c:out value="${fn:startsWith('helloworld','hello') }"/>    <c:out value="${fn:endsWith('helloworld','world') }"/>    <br>    <c:set var="str" value="this is <abc> hello world </abc>"></c:set>    <!-- fn:escapeXml 函数忽略用于XML标记的字符,将原来XML的标记用转义符号代替 -->    <c:out value="${fn:escapeXml(str) }"/><!-- this is &lt;abc&gt; hello world &lt;/abc&gt;-->    <br>    <c:out value="${str}"/><!-- this is <abc> hello world </abc> -->    <br>    <!-- fn:indexOf()   返回指定字符串在输入字符串中出现的位置 -->    <c:out value="${fn:indexOf('helloworld','wo') }"></c:out>    <br>    <!-- fn:length()    返回字符串长度 -->    <c:out value="${fn:length('helloworld')}"></c:out>    <br/>    <!-- fn:split() 将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回 -->    <c:forEach items="${fn:split('hello?world?year?month?day','?') }" var="splitString">        <c:out value="${splitString }"></c:out>    </c:forEach>    <br/>    <%    String[] strs=new String[]{"hello","world","people"};    request.setAttribute("strs", strs);    %>    <!-- fn:join()  将数组中的元素合成一个字符串然后输出 -->    <c:out value="${fn:join(strs,'-') }"/>     <br/>    <!-- fn:replace()   将输入字符串中的字符串替换为指定的字符串然后返回 -->    <c:out value="${fn:replace('helloworldmyclass','wor','haha') }"/>    <br/>    <!-- fn:substring() 返回字符串的子集 -->    <c:out value="${fn:substring('helloworld',1,3) }"/>    <br/>    <!-- fn:substringAfter()    返回字符串在指定子串之后的子集 -->    <c:out value="${fn:substringAfter('helloworld','wo') }"/>    <br/>    <!-- fn:substringBefore()返回字符串在指定子串之前的子集 -->    <c:out value="${fn:substringBefore('helloworld','wo') }"/>    <br/>    <!-- fn:toLowerCase()   将字符串中的字符转为小写 -->    <c:out value="${fn:toLowerCase('hellOWOrld') }"/>    <br/>    <!-- fn:toUpperCase()   将字符串中的字符转为大写 -->    <c:out value="${fn:toUpperCase('hellOWOrld') }"/>    <br/>    <!-- fn:trim()  移除首位的空白符 -->    <c:out value="${fn:trim(' hellOW  Orld  ') }"/></body></html>

JSTLStudy_fmt

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%><%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%><%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%><!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=UTF-8"><title>Insert title here</title></head><body>    <fmt:requestEncoding value="utf-8" />    <!-- 设置用户的语言国家或地区  variant=""设置浏览器类型-->    <fmt:setLocale value="en_US" />    <!-- 绑定资源文件(.properties),prefix是通用的前缀         properties文件必须加入build path,否则结果会是???keyname???         其中keyname是fmt:message中key的名字         如果資源文件有參數{0} {1} ,可以使用fmt:param填充     -->    <fmt:bundle basename="MySchool" prefix="MySchool">        <fmt:message key="Name" var="theschoolName"/>        <br>        ${theschoolName }        <br>        <fmt:message key="Address" var="schoolAddr"/>        ${schoolAddr }    </fmt:bundle>    <!--bundle这里需要加上EL表达式,否则报错    Unable to convert string "schoolBundle" to class "javax.servlet.jsp.jstl.fmt.LocalizationContext" for attribute "bundle": Property Editor not registered with the PropertyEditorManager     -->    <fmt:setBundle basename="MySchool" var="schoolBundle" />    <fmt:message key="MySchoolName" var="newSchoolName"        bundle="${schoolBundle }" />    <br> ${newSchoolName }    <br>    <fmt:message key="MySchoolAddress" var="newAchoolAddr"        bundle="${schoolBundle }" />    ${newAchoolAddr }</body></html>

JSTLStudy_core

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c"           uri="http://java.sun.com/jsp/jstl/core" %><%@ taglib prefix="fmt"           uri="http://java.sun.com/jsp/jstl/fmt" %><%@ taglib prefix="sql"           uri="http://java.sun.com/jsp/jstl/sql" %><%@ taglib prefix="x"           uri="http://java.sun.com/jsp/jstl/xml" %><%@ taglib prefix="fn"           uri="http://java.sun.com/jsp/jstl/functions" %><!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=UTF-8"><title>Insert title here</title></head><body>    <c:set scope="page" var="c_var" value="1020.00"></c:set>    <c:out value="${c_var }>1021.00"/>    <!--输出1020.00>1021.00 -->    <br/>    <c:if test="${ c_var>1019.99 }" var="testResult">        <c:out value="${c_var } 大于 1019.00 结果是${testResult }"/>    </c:if>    <!-- 1020.00 大于 1019.00 结果是true -->    <br/>    <c:choose>        <c:when test="${ c_var>1019.99 }">            <c:out value="${c_var } 大于 1019.00"/>        </c:when>        <c:otherwise>            <c:out value="${c_var } 不大于 1019.00"/>        </c:otherwise>    </c:choose>    <!-- 1020.00 大于 1019.00  -->    <br/>    <c:choose>        <c:when test="${ c_var-2.00>1019.99 }">            <c:out value="${c_var-2.00 } 大于 1019.00"/>        </c:when>        <c:otherwise>            <c:out value="${c_var-2.00 } 不大于 1019.00"/>        </c:otherwise>    </c:choose>    <!-- 1018.0 不大于 1019.00 -->    <br>    <%        String[] str=new String[]{"Hello",",","welcome","to","BeiJing","!","Thank","You","!"};        request.setAttribute("str", str);    %>    <!-- varStatus保存了index(索引)、count(迭代次数)、first、last -->    <c:forEach items="${str }" var="t_str" varStatus="VarStatus">        <c:if test="${VarStatus.first }">            <c:out value="everyone listen to me:"/>            <br/>        </c:if>        <c:if test="${VarStatus.last }">            <c:out value="OK!"/>            <br/>        </c:if>        <c:out value="${VarStatus.index}"></c:out><c:out value="${t_str}"/>        <br/>    </c:forEach>    <!--     everyone listen to me:     0Hello     1,     2welcome     3to     4BeiJing     5!     6Thank     7You     OK!     8!     -->    <c:set var="Strings" value="hello?world??nohello?noworld"></c:set>    <c:forTokens items="${Strings }" delims="?" var="nowString">        <c:out value="${nowString }"/>    </c:forTokens>    <!-- hello world nohello noworld -->    <c:remove var="Strings"/>    <c:catch></c:catch>    <br>    <!-- 将url的内容读取到var中 -->    <c:import url="input.jsp" var="jspContent">    </c:import>    <c:out value="${jspContent }"></c:out>    <%--<c:param name="" value=""></c:param> --%>    <!-- context=""当要重定向目标网址为其他Web应用的网页时指出其应用名        当传递参数的时候出现乱码,可以修改Tomcat的server.xmlt中在Connector标签里加入URIEncoding="utf-8"    -->    <%--<c:redirect url="input.jsp"/> --%>    <a href="<c:url value="input.jsp"/>">to input.jsp</a></body></html>
1 0
原创粉丝点击