`
习惯在马桶上思考
  • 浏览: 114860 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

(转)JSTL标签

阅读更多

1.JSTL1.1标签库 
核心标签库,国际化标签库,数据库标签库,XML标签库,函数标签库 

2.EL表达式的默认变量 
(1)pageScope,requestScope,sessionScope,applicationScope, 
这个4个变量包含Scope作用范围得参数集合,相当于保存在java.util.Map种得某个参数 

(2)默认变量param和paramValues 
param表明请求包含的参数为单一控件,paramValues表明请求包含的参数为控件数组 

(3)默认变量header和headerValues 
包含请求参数头部信息得集合,header变量表示单一头部信息,headerValue则表示数组型得头部信息 

(4)默认变量cookie 
cookie集合,集合中得每个对象对应javax.servlet.http.Cookie 

(5)默认变量initParam包含所有应用程序初始化参数得集合 

(6)默认变量pageContext 
用来提供访问不同得请求参数 

EL表达式操作符 
empty:用来对一个空变量进行判断:null,一个空String,空数组,空map,没有条目得Collection集合 
func:调用方法,func是方法名,args是参数,可以没有,或者有一个,多个参数,参数间用都好隔开 

3.JSTL Core标签库 
多用途核心标签:<c:out><c:set><c:remove><c:catch> 
条件控制标签<c:if><c:choose><c:when><c:otherwise> 
循环控制标签<c:forEach><c:forToken> 
URL相关标签<c:import><c:url><c:redirect><c:param> 

<c:out>: 
<c:out value="{$sessonScope.anyValue}" default="no value" excapeXml="false" /> 
从Session查找名为anyValue的参数,并显示在页面,若咩有找到则显示no value 
xcapeXml当设置为true时会主动更换特殊字符,比如“&lt;&gt;&amp;”,默认为true 

<c:set>: 
<c:set value="this is andy" var="oneString" /> 
${oneString} 
将名为oneString得变量赋值为this is andy,其作用范围时page 
target:被赋值的javaBean实例名 
property,javaBean属性名 
scope:作用范围,默认为page 

<c:remove>: 
<c:remove var="sampleValue" scope="session" /> 

<c:catch>: 
<c:catch var="err"> 
${param.smpleSingleValue[9] == 3} 
</c:catch> 
${err} 
从变量var的err中得到异常内容 

<c:if> 
<c:if test="{paramValue.sampleValue[2] == 12}" var"visits" /> 
It is 12 
</c:if> 
${visits} 
将判断得结果保存在visits中 

<c:choose><c:when><c:otherwise>: 
<c:choose> 
<c:when test="$paramvalues.sampleValue[2] == 11" /> 
not 12 not 13,it is 11 
</c:when> 
<c:when test="$paramvalues.sampleValue[2] == 12" /> 
not 11 not 13,it is 12 
</c:when> 
<c:when test="$paramvalues.sampleValue[2] == 13" /> 
not 11 not 12,it is 13 
</c:when> 
<c:otherwise> 
not 11 12 13 
</c:otherwise> 
</c:choose> 

<c:forEach>: 
<c:forEach items="${seesionScope.arrayList}" var"arrayListI" /> 
${arrayListI} 
</c:forEach> 
var用来接收集合的对象,该循环的变量名 

<c:forTokens>: 
<c:forTokens items="aa,bb,cc,dd" begin="0" end="2" step"2" delims="," var="aValue" /> 
${aValue} 
</c:forTokens> 
结果时"aa cc",跳两格,截取逗号前面的字符 
delims分隔符, 
varStatus显示循环状态得变量 

<c:import> 
<c:import url="/MyHtml.html" var="thisPage" />在同一个Context下导入 
<c:import url="/MyHtml.html" context="/sample2" var="thisPage" />在不同Context下导入 
<c:import url="www.sample.com/MyHtml.html" var="thisPage" />导入任意一个URL 
charEncoding导入页面的字符集 

<c:url> 
<c:import url="/MyHtml.html" var="urlPage" /> 
<a href="${urlPage}">Link</a> 

<c:redirect>: 
<c:redirect url="/MyHtml.html" /> 
一般和<c:if>等标签一起使用 

<c:param>: 
<c:redirect url="/MyHtml.html" /> 
<c:param name="userName" value="RW"> 
</c:redirect> 
传递参数 


4.JSTL XML processing标签库 
XML核心标签库:<x:parse><x:out><x:set> 
XML流控制标签:<x:if><c:choose><c:when><c:otherwise> 
XML转换标签<x:transform><x:param> 

解析XML文件的<x:parse> 
<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml"> 
<x:parse var="xmlFileValue" doc="${xmlFile}"> 
varDom:制定保存得变量为org.w3c.dom.Document接口类型 
scopeDom:org.w3c.dom.Document接口类型的作用范围 
filter:该属性必须为org.xml.sax.XMLFilter类的一个实例,可以使用EL表达式传入,将对XML文件做过滤得到自身需要的部分 

<x:out> 
<x:parse var="xmlFileValue" doc="${xmlFile}" /> 
name:<x:out select="$xmlFileValue/xml-body/name" /><br> 
password:<x:out select="$xmlFileValue/xml-body/password" /><br> 
age:<x:out select="$xmlFileValue/xml-body/age" /><br> 
加上$作为XPath表达式得开头,select中的表达式将从xml-body根元素下得各个子元素中取得尸体内容 

<x:set>: 
<c:set value="this is andy" var="oneString" /> 

<x:if> 
<x:if test="{paramValue.sampleValue[2] == 12}" var"visits" /> 
It is 12 
</x:if> 
${visits} 
将判断得结果保存在visits中 

<x:choose><c:when><c:otherwise>: 
<x:choose> 
<x:when test="$paramvalues.sampleValue[2] == 11" /> 
not 12 not 13,it is 11 
</x:when> 
<x:when test="$paramvalues.sampleValue[2] == 12" /> 
not 11 not 13,it is 12 
</x:when> 
<x:when test="$paramvalues.sampleValue[2] == 13" /> 
not 11 not 12,it is 13 
</x:when> 
<x:otherwise> 
not 11 12 13 
</x:otherwise> 
</x:choose> 

<x:forEach>: 
<x:forEach items="${seesionScope.arrayList}" var"arrayListI" /> 
${arrayListI} 
</x:forEach> 
var用来接收集合的对象,该循环的变量名 

格式化XML显示数据得<x:transform>标签 
<x:transform>标签允许使用XSLT(转换XML格式的语言)为页面得显示数据做格式化的处理 
<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml"> 
<c:set var="xsltdoc"> 
<?xml version="1.0" ?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:template match="/"> 
<xsl:apply-templates /> 
</xsl:template> 
<xsl:template match="xml-body"> 
<html> 
<head></head> 
<body> 
UserName: 
<xsl:value-of select="name" /> 
PassWord: 
<xsl:value-of select="password" /> 
<xsl:value-of select="age" /> 
</body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 
</c:set> 

<x:transform xslt="${xsltdoc}" doc="${xmlFile}"> 
将XML文件保存的数据信息利用<c:import>保存在"xmlFile"中,然后使用<c:set>标签保存在一个XSLT得源到"xsltdoc",最后通过<x:tranform>格式化XML文件得数据显示在页面上 


<x:param>: 
<x:redirect url="/MyHtml.html" /> 
<x:param name="userName" value="RW"> 
</x:redirect> 
传递参数 


5.I18N fromattion标签库 

国际化核心标签:<fmt:setLocale><fmt:bundle><fmt:setBundle><fmt:message><fmt:param><fmt:requestEncoding> 

格式化标签:<fmt:timeZone><fmt:setTimeZone><fmt:formatNumber><fmt:parseNumber><fmt:formatDate> 
<fmt:parseDate> 

用于设置本地化环境的<fmt:setLocale> 
<fmt:setLocale value="zh_TW"> 


用于资源文件绑定的<fmt:bundle><fmt:setBundle>标签 
<fmt:bundle>标签将资源配置文件绑定于标签体中得显示 
<fmt:setBundle>标签允许将资源配置文件保存为一个变量,之后的工作可以根据该变量来进行 

<fmt:setBundle basename="applicationMessage" var="applicationBundle" /> 
该实例将会查找一个名为applicationMessage_zh_CN.properties的资源配置文件,来作为显示Resource标签 
basename:指定资源配置文件,只需要指定文件名而无须扩展名,是两组标签的共有属性 


用于显示资源配置文件信息的<fmt:message> 
<fmt:setBundle basename="applicationMessage" var="applicationBundle" /> 
<fmt:bundle baseanme="applicationAllMessage"> 
<fmt:message key="userName" /> 
<p> 
<fmt:message key="password" bundle="${applicationBundle}" /> 
</fmt:bundle> 
第一个<fmt:message>标签将使用"applicationAllMessage"资源配置文件中”键“为"userName"的信息显示 
第二个<fmt:message>标签虽然被定义在<fmt:bundle>标签体内,但是它使用了bundle属性,因此将指定之前由<fmt:setBundle>标签保存的"applicationMessage"资源配置文件,该”键“为"passWord"的信息显示 

用于参数传递得<fmt:param>,只有value属性 

用于为请求设置字符编码得<fmt:requestEncoding>标签,只有value属性 

用于设定失去得<fmt:timeZone><fmt:setTimeZone> 
<fmt:timeZone>使得在其标签体内得工作可以用该失去设置 
<fmt:setTimeZone>将失去设置保存为一个变量 

用于格式化数字得<fmt:formatNumber> 
<fmt:formatNumber value="1000.888" type="currency" var="money"> 
type:格式化类型,由currency(货币),number(数字),percent(百分比) 
pattern:格式化模式 
var:结果保存变量 

用于解析数字得<fmt:parseNumber> 
<fmt:parseNumber value="15%" type="precent" var="num"> 
结果是0.15 
type:解析格式化的类型 

用于格式化日期的<fmt:formatDate> 
timeZone:指定格式化日期的时区 
和<fmt:timeZone><fmt:setTimeZone>一起用 

用于解析日期的<fmt:parseDate> 
<fmt:parseDate><fmt:parseNumber>尽量少用,替代工作得地方应该在服务器端表示层的后段,比如在servlet 

6.Database access标签库 
用于设置数据源得<sql:setDataSource> 
现在这个标签已不用,因为违反了MVC得规范 

7.functions标签 
为EL表达式语句提供了许多更有用得功能 
长度函数:fn:length 
字符串处理函数:fn:contains,fn:containsIgnoreCase,fn:endsWith,fn:escapeXml,fn:indexOf,fn:join, 
fn:replace,fn:split,fn:startsWith,fn:substring,fn:substringAfter,fn:substringBefore,fn:toLowerCase,fn:toUpperCase,fn:trim 

fn:length 
${fn:length(sessionScope.arrayList1)} 
参数为input,将计算通过该属性传入的对象长度,该对象应该为集合类型或String类型,其返回结果是一个int类型的值, 

判断函数fn:contains 
判断源字符串是否含有子字符串,返回结果是boolean类型的值 
contains("string","substring"),两个都是stirng类型 
${fn:contains("ABC","a")}返回false 
${fn:contains("ABC","A")}返回ture 

fn:containslgnoreCase函数 
和fn:contains区别是fn:containslgnoreCase函数的子字符串忽略大小写 
${fn:ontainslgnoreCase("ABC","a")}返回ture 
${fn:ontainslgnoreCase("ABC","A")}返回ture 

词头判断fn:startsWith 
${fn:startsWith("ABC","ab")}返回false 
${fn:startsWith("ABC","AB")}返回ture 

词尾判断fn:endsWith 

字符实体转换函数fn:escapeXml 
用于将所有特殊字符转化为字符实体码,返回一个string类型 


字符匹配函数fn:indexOf 
${fn:indexOf("ABC","aBC")}返回-1 
${fn:indexOf("ABC","BC")}返回1 
返回-1或1 

分隔符fn:join 
<% String[] stringArray = ("a","b","c"); %> 
<% request.getSession().setAttribute("stringArray",stringArray); %> 
${fn:join(sessionScope.stringArray,",")} 
定义数组并防止到Session中,然后通过Session得到该字符串数组,使用fn:join函数并传入分隔符";",得到的结果为"a;b;c" 

替换函数fn:replace 
${fn:replace("ABC","A","B")} 
"ABC"是原字符串,"A"是被替换的字符,"B"替换后的字符 

分隔符转换数组函数fn:split 
${fn:split("A,B,C",",")} 
将"A,B,C"字符串转换为数组{A,B,C} 

字符串截取函数fn:substring函数 
${fn:substring("ABC","1","2")} 
从0开始 
截取结果为B 

定位到结束截取字符串函数fn:substringAfter函数 
${fn:substringAfter("ABC","BC")},结果为D(不包括BC) 
允许截取源字符串中某个字符串开始到结束的所有字符 

起始到定位截取字符串函数fn:substringBefore 
${fn:substringAfter("ABC","BC")}结果为A(不包括BC,BC前的数) 

小写转换函数fn:toLowerCase 
${fn:toLowerCase("ABC")} 

大写转换函数fn:toUpperCase 
${fn:toLowerCase("abc")} 

空格删除函数fn:trim函数 
${fn:trim("AB C ")}D 
转换结果为"AB CD",只删除词尾得空格而不是全部, 


8.<bean:define>,<bean:write>被EL表达式替换 
<bean:cookie><bean:header><bean:parameter><bean:write>被EL表达式替换 
<bean:include>被<c:import>替换 
<bean:message>被<fmt:bundle><fmt:setBundle>,<fmt:message>合作替换 

所有判断标签(logic,bean)被EL表达式和<c:if>替换 
<logic:iterate>被<c:forEach>和EL表达替换 
<logic:redirect>被<c:redirect>和<c:param>替换 

分享到:
评论

相关推荐

    JAVAEE实验报告EL表达式和jstl标签库的使用.pdf

    JAVAEE 实验报告 EL 表达式和 JSTL 标签库的使用 EL 表达式(Expression Language)是一种在 JSP 页面中使用的脚本语言,用于简化 JSP 页面的开发。EL 表达式可以访问 JSP 页面中的变量、对象和集合,进行逻辑操作...

    jstl标签使用文档,jstl标签使用帮助文档

    本文档将详细介绍JSTL标签的使用方法,帮助开发者更好地理解和应用。 JSTL主要分为五个核心部分: 1. **Core(核心标签库)**:提供基本的控制结构,如条件语句、循环、跳转等。 - `&lt;c:if&gt;`:用于执行条件判断。 ...

    jstl标签库的配置

    本篇文章将深入探讨JSTL标签库的配置过程及其在实际应用中的作用。 首先,我们要理解**JSTL的核心组件**。JSTL主要由五个核心部分组成:Core、Format、I18N、SQL和XML。其中,Core组件包含了大部分用于控制流程、...

    JSTL标签库依赖,内含Tomcat8、Tomcat10所需JSTL依赖

    3. 使用JSTL标签:现在可以在JSP页面中使用JSTL标签,如`&lt;c:forEach&gt;`进行迭代,`&lt;c:if&gt;`进行条件判断,`&lt;fmt:formatDate&gt;`格式化日期等。 总之,JSTL是提升JSP页面编写效率的重要工具,而依赖注入则是现代Java应用...

    JSTL标签库需要导入的Jar包

    以下是关于JSTL标签库所需导入的JAR包及其功能的详细解释: 1. **jstl.jar**:这是核心JSTL库,包含了大部分常用的标签,如 `&lt;c:if&gt;`, `&lt;c:forEach&gt;`, `&lt;fmt:formatDate&gt;` 等。这些标签提供了条件判断、循环、格式...

    JSTL标签配置流程

    【JSTL标签配置流程详解】 JSTL(JavaServer Pages Standard Tag Library)是SUN公司推出的一种用于JSP开发的组件,旨在替代传统的JSP scriptlet代码,提高页面的可读性和维护性。JSTL提供了一系列标签,使得开发者...

    自定义JSTL标签java项目文件

    自定义JSTL标签是JSTL功能的一个扩展,允许开发者根据具体需求创建自己的标签,进一步提升项目的定制化程度。本项目包含的"JAVAEE-1-jstl"压缩包文件,很可能是为了解释如何在Java项目中创建和使用自定义JSTL标签。 ...

    jstl标签jar包

    JSTL标签库包括核心标签、XML处理标签、SQL标签和函数标签等几大类,覆盖了网页开发中的常见操作。 在JSP页面中使用JSTL,首先需要将对应的jar包添加到项目的类路径(classpath)中。这里提供的“jstl标签jar包”...

    JSTL标签库jar包文件

    每个`taglib`元素定义了一个TLD(Tag Library Descriptor)文件的位置,这告诉服务器JSTL标签库的位置和元数据。 总之,JSTL通过提供丰富的标签来增强JSP页面的功能,而解决"无法解析绝对uri"的错误通常涉及到正确...

    JSTL标签库-tomcat10-简化JSP中java代码

    **正文** JSTL(JavaServer Pages Standard Tag Library)是Java Web开发中一个重要的标签库,主要用于简化...通过学习和实践这些内容,开发者可以更加熟练地在JSP页面中运用JSTL标签,提升Web应用的开发质量和效率。

    jstl标签库文档

    ### JSTL标签库:简化JSP应用的利器 #### JSTL概述 JSTL,全称为JavaServer Pages Standard Tag Library(JavaServer 页面标准标签库),是为JSP(JavaServer Pages)开发者提供的一组预定义的标签库,旨在简化Web...

    JSTL标签库及使用方法

    **JSTL标签库及其使用方法** JavaServer Pages Standard Tag Library(JSTL)是Java社区为简化JSP页面开发而推出的一个标准标签库。它提供了丰富的功能,如迭代、条件判断、XML处理、国际化等,使代码更加简洁、易...

    jstl1.2标签库jar包

    API JAR通常包含的是编译时所需的类和接口,开发者在编写JSP页面时会依赖这些接口来使用JSTL标签。例如,`fmt`, `fn`, `c`, `sql`, 和 `tags`等核心库的接口都在这个JAR中。 2. **JSTL Implementation (jstl-impl-...

    JSTL标签教程

    ### JSTL标签教程知识点详解 #### 一、JSTL简介 - **定义**:JSP标准标签库(JSTL,JavaServer Pages Standard Tag Library)是一种为简化JSP页面开发而设计的标准标签库。它提供了一系列预定义的标签,用于执行...

    jstl标准标签库jar包.zip

    jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2...

    JSTL标签库jar包

    - 使用JSTL标签库可以提高代码的可读性和可维护性,降低HTML和Java代码的混合程度。 - 结合EL,可以进一步减少脚本let的使用,使JSP页面更加整洁。 - 注意,JSTL的SQL标签库不适用于复杂的数据库操作,现代Web应用...

    jstl标签库jar包

    **JSTL标签库与JAR包详解** JavaServer Pages Standard Tag Library(JSTL)是Java EE领域中用于简化JSP开发的一个重要工具。它提供了一组预定义的标签,帮助开发者更高效地处理常见任务,如迭代、条件判断、国际化...

    JSTL标签库的下载

    ### JSTL标签库及其下载 #### JSTL概述 JSTL(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一组用于开发JavaServer Pages页面的标准标签集合。这些标签简化了JSP页面的编写工作,使...

    jstl标签库jar包、例子、jstl中文帮助文档

    `JSTL_SRC`可能包含了一些示例代码,这些代码可以帮助你理解如何在实际项目中应用JSTL标签,通过阅读和运行这些示例,可以加深对JSTL的理解。 总的来说,JSTL简化了JSP页面的编程,提高了代码的可读性和可维护性。...

    JavaWeb-12:自定义标签库开发&JSTL标签库

    二、JSTL标签库 JSTL是Java Web开发的标准标签库,它包含五个核心部分:Core、Format、I18N、XML和SQL。这些标签提供了丰富的功能,例如控制流、格式化、国际化、XML处理和数据库操作。 1. **Core标签**:包括if、...

Global site tag (gtag.js) - Google Analytics