JSTL入门使用
JSTL详解(常用标签以及c:forEach遍历集合)

JSTL详解(常⽤标签以及c:forEach遍历集合)JSTL标签参考⽂章:/qq_25827845/article/details/53311722# 学习总结⼀、 JSTL的简介1. 什么是JSTLJSTL 是 JSP 标准标签库,利⽤标签库的标签可以取代 JSP 页⾯上的 Java 代码,为页⾯设计⼈员和后台开发⼈员的分⼯协作提供了便利。
2. JSTL常⽤标签库标签库名URI字符串作⽤前缀核⼼标签库<%@ taglib prefix=“c” uri=“/jsp/jstl/core” %>⽤于页⾯逻辑控制如:if、forEachc格式化标签库<%@ taglib prefix=“fmt” uri=“/jsp/jstl/fmt” %>⽤于执⾏格式操作如:格式化⽇期字符串fmt3. JSTL使⽤步骤1)、导⼊ jstl-1.2.jar 包,每个标签底层其实都是⽤ Java 代码实现的,复制 jar 包到 web/WEB-INF/lib ⽬录结构下;2)、创建 JSP 页⾯,使⽤ taglib 的指令引⽤标签库<%@ taglib prefix="c" uri="/jsp/jstl/core" %>3)、接下来就可以使⽤标签库定义好的标签了,例如:<c:if>⼆、核⼼标签库常⽤标签1. c: set 标签标签名使⽤<c:out value=“xxx”/>输出 xxx<c:out value="${age}"/>输出EL表达式 ${age} 获取的内容<c:out value=”${age}” default=”xxx”/>输出EL表达式 ${age} 获取的内容,当EL表达式内容不存在时输出 default 的内容2. c: out 标签标签名使⽤<c:set var=“a” value=“xxx”/>在pageContext中添加name为a,value为xxx的数据<c:set var=”a” value=”xxx” scope=”session”/>在session中添加name为a,value为xxx的数据3. c: if 标签属性名是否⽀持EL属性类型属性描述test⽀持,必须是EL boolean EL 中条件为真则执⾏标签体内容注意:没有对应 else 标签代码案例:<c:set var="a" value="hello"/><c:if test="${not empty a }"><c:out value="${a }"/></c:if>4. c: choose 标签作⽤:⽤于多分⽀判断(多条件判断)标签名作⽤chaoose类似于 Java 中的 switch,choose只是⼀个容器,包含下⾯两个元素when可以出现多个⽤于每个判断条件,类似于 switch 中 case。
JSTL标签用法详解

JSTL标签用法详解在JSP的开发中,迭代是经常要使用到的操作。
例如,逐行的显示查询的结果等。
在早期的JSP中,通常使用Scriptlets来实现Iterator或者Enumeration对象的迭代输出。
现在,通过JSTL的迭代标签可以在很大的程度上简化迭代操作。
JSTL所支持的迭代标签有两个,分别是<c:forEach>和<c:forTokens>。
在这里介绍的是<c:forEach>标签。
简单点说,<c:forEach>标签的作用就是迭代输出标签内部的内容。
它既可以进行固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数。
<c:forEach>标签的语法定义如下所示。
<c:forEach var='name' items='expression' varStatus='name' begin='expression' end='expression' step='expression'>body content</c:forEach><c:forEach>标签具有以下一些属性:l var:迭代参数的名称。
在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。
类型为String。
l items:要进行迭代的集合。
对于它所支持的类型将在下面进行讲解。
l varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。
l begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。
它的类型为整数。
l end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。
过程超详细的常用的JSTL标签的使用

每一个jsp页面都要导入标签库:<%@ taglib uri="/jsp/jstl/core" prefix="c" %>项目结构图:c_choose.jsp<body><%//放入小老鼠Rat rat=new Rat();rat.setName("小宝");rat.setAge(10);request.setAttribute("rat1", rat);%><h1>c:choose测试</h1><c:choose><c:when test="${rat1.age<2}"><font color="red">老鼠很小,不能吃</font></c:when><c:when test="${rat1.age>2 and rat1.age<8}"> <font color="green">老鼠很壮,好吃</font></c:when><c:otherwise><font color="blue">老鼠很大,不好吃</font></c:otherwise></c:choose></body>c_foreach.jsp<body><h1>迭代标签:c:foreach</h1><%ArrayList<Rat> al =new ArrayList<Rat>(); Rat rat1=new Rat();rat1.setName("小宝");rat1.setAge(2);Rat rat2=new Rat();rat2.setName("中宝");rat2.setAge(4);Rat rat3=new Rat();rat3.setName("大宝");rat3.setAge(6);//放入到alal.add(rat1);al.add(rat2);al.add(rat3);request.setAttribute("allrats", al);%><h1>foreach取数据</h1><c:forEach items="${allrats}" var="rat"><c:out value="${}"/><c:out value="${rat.age}"/></c:forEach><h1>第二种迭代</h1><c:forEach var="i"begin="1"end="10"step="2"><c:out value="${i}"/>--></c:forEach></body>c_fortokens.jsp<body><h1>fortokens</h1><%request.setAttribute("abc", "12;56;你好;aaa");%><c:forTokens items="${abc}" delims=";"var="temp">${temp}</c:forTokens></body>c_if.jsp<body><h1>c_if的使用</h1><!-- 以下的代码不应该在这儿写,为了方便学习,直接在这儿写了! --> <%request.setAttribute("a", "hello");request.setAttribute("age", "23");Rat rat=new Rat();rat.setName("小宝");rat.setAge(1);request.setAttribute("rat1", rat);%><h1>字符串判断</h1><c:if test="${a=='hello' }">ok!</c:if><c:if test="${a!='hello' }">err!</c:if><h1>判断数值</h1><c:if test="${age==56}">等于56</c:if><c:if test="${age<56}">小于56</c:if><h1>范围判断</h1><c:if test="${age>10 and age<34}">age>10 and age<34</c:if><h1>对象判断</h1><c:if test="${rat1.age>3}">老鼠年龄大于3岁</c:if><c:if test="${rat1.age<3}">老鼠年龄小于3岁</c:if></body>c_out.jsp<body><%//out.println("hello,world!"); %><%//c:out优先级是pageContext>request>session>applicationrequest.setAttribute("abc", "你好1 <ahref=''>sohu</a>");//session.setAttribute("abc", "你好2");//application.setAttribute("abc", "你好3");//pageContext.setAttribute("abc", "你好4"); %><%User u=new User();u.setUsername("小明");u.setAge(30);request.setAttribute("user", u);%><c:out value="hello,world!"></c:out><h1>如何输出request/session/application/pagecontext域对象的数据</h1><c:out value="${abc}" default="没有值"escapeXml="false"></c:out><br/><h2>输出对象的值</h2><c:out value="${ername}"></c:out>||<c:outvalue="${user.age}"></c:out><br/><h3>使用EL表达式输出的值</h3>${ername}&&${user.age*2}</body>c_remove.jsp<body><%//下面的标签等价于request.setAttribute("ab", "淮安真美丽"); %><h1>输出:</h1><c:out value="${ab}"></c:out><h1>使用EL表达式输出的值:</h1>${ab}<h1>使用remove后:</h1><c:remove var="ab"scope="request"/><c:out value="${ab}" default="不存在"></c:out></body>c_set.jsp<body><%//下面的标签等价于//request.setAttribute("abc", "中国.北京"); %><c:set var="abc"value="中国.北京"scope="request"></c:set> <h2>输出对象的值</h2><c:out value="${abc}"></c:out><br/><h3>使用EL表达式输出的值</h3>${abc}</body>。
第09章 使用EL与JSTL

${msg}
</body> </html>
5
EL也是既可以直接写在HTML的标签内部, 也可以写在某个标签的属性中,例如: <% String s="index.jsp"; request.setAttribute("url", s); %>
<a href="${url}">这是一个超级链接,链接到首页</a> 实际输出: <a href="index.jsp">这是一个超级链接,链接到首页</a>
</body>
18
使用“.”操作符输出JavaBean类型对象的信息
19
“[ ]”操作符
如果从作用域中取出的对象不是映射类型 (Map)或者不是JavaBean的类型,需要使 用“[ ]”操作符处理。
“[ ]”操作符可以处理: 映射类型(Map)对象 JavaBean类型对象 数组类型对象 列表类型(List)对象 (EL3.jsp) (EL4.jsp) (EL5.jsp) (EL6.jsp)
${'a' < 'b'} ${"hip" > "hit"} ${'4' > 3}
false
true false true
10
空运算符
空运算符(empty)用来判断参数是不是null、 空字符串、空数组、空Map或者空集合,如 果是则返回true,否则返回false
EL表达式 ${empty null} ${empty ""} 结果 true true
JSTL 入门2

JSTL(JSP标准标签库)介绍作者:令少爷(shaoye@)前言从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。
因为工作中需要用到JSTL,但网上却苦于找不到有关JSTL的中文资料,所以就有了这篇文章。
JSTL简介JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。
JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。
但是在即将推出的JSP 2.0中是作为标准支持的。
JSTL目前的最新版本为1.02,最终发布版为1.0。
JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。
标签库目前支持四种标签:标签URI 前缀示例Core /jstl/core c <c:tagname ...> XML processing /jstl/xml x <x:tagname ...>I18N capableformatting/jstl/fmt fmt <fmt:tagname ...> Database access(SQL)/jstl/sql sql <sql:tagname ...>Core支持JSP中的一些基本的操作;XML processing支持XML文档的处理;I18N capable formatting支持对JSP页面的国际化;Database access (SQL)支持JSP对数据库的操作。
由于本人水平有限,本文仅介绍Core标签,如有兴趣,可一起探讨其它三种标签的使用与扩充。
EL语言介绍EL语言是JSTL输出(输入)一个JAVA表达式的表示形式。
在JSTL中,EL语言只能在属性值中使用。
jstl用法

JSTL用法一、什么是JSTLJavaServer Pages Standard Tag Library(JSTL)是一个JSP规范的标准标签库,它为JSP页面提供了一组标签和函数,用于简化JSP页面的开发和维护。
JSTL提供了核心标签库、格式化标签库、SQL标签库和XML标签库等,可以帮助开发者更方便地处理数据、格式化输出、执行SQL查询和处理XML数据等任务。
二、JSTL的引入要使用JSTL,首先需要在项目中引入JSTL的相关依赖。
在Maven项目中,可以通过在pom.xml文件中添加以下依赖来引入JSTL:<dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>引入依赖后,就可以在JSP页面中使用JSTL的标签了。
三、核心标签库1. <c:out>标签<c:out>标签用于输出表达式的值,可以防止XSS攻击。
它的使用方式如下:<c:out value="${expression}" />其中,expression是一个JSP表达式,可以是一个变量、一个属性或者一个EL表达式。
<c:out>标签会将expression的值进行HTML转义,以防止恶意代码注入。
2. <c:set>标签<c:set>标签用于设置一个变量的值,可以在JSP页面中使用这个变量。
它的使用方式如下:<c:set var="variableName" value="expression" />其中,variableName是变量的名称,expression是一个JSP表达式,用于给变量赋值。
Jstl 使用简介
${imb.multiple == '2'}:计算有效范围内imb对象的属性multiple的值是否等于2,如果等于2则返回true,否则返回false${users}:返回有效范围内名为”users”的值,该值可以是任何对象,如:request.setAttribute(“users”,new ArrayList()); 这样得到的就是一个集合.三、部分标签使用说明1 、 <c:out>[说明]输出值,相当于 struts 中的 <bean:write>[举例]获得 request 中的属性: <c:outvalue="${requestScope.test_all}"/>获得 session 中的属性:<c:outvalue="${sessionScope.test_all}"/>获得 application 中的属性:<c:outvalue="${applicationScope.test}"/>2 、 <c:forEach>[说明]循环某个范围内的一个集合(可以是Collection、Set、List、Array 等)items----表示要循环的集合var---表示当前集合中的某条记录,可以对它进行访问[举例]3 、 <c:if>[说明]逻辑判断[举例]<c:if test="${imb.hmtb.typeid == 4}"><c:if test="${imb.multiple == '2'}">(10,270)</c:if><c:if test="${imb.multiple == '1'}">(10,290)</c:if> </c:if>4 、<c:set>[说明]设置不同的属性,并且指定它们的范围[举例]<c:set value="10000" var="maxUser" scope="application"/><c:set value="20" var="maxIdelTime" scope="session"/><c:set value="next.jsp" var="nextPage" scope="request"/>相当于:application.setAttribute(“maxUser”,”10000”);session.setAttribute(“maxIdelTime”,”20”);request.setAttribute(“nextPage”,”next.jsp”);一、什么是JSTLJSTL(JavaServerPages Standard Tag Library)JSP标准标签库。
JSTL详解
java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。
JSTL标签库可分为5类:∙核心标签库∙I18N格式化标签库∙SQL标签库∙XML标签库∙函数标签库八、JSTL 表达式在页面的配置。
1、导入standard.jar和jstl.jar。
2、在JSP页面上引入 JSTL 的引用。
如:Java代码1.<%@ taglib uri="/jsp/jstl/core" prefix="c" %>九、JSTL 的使用。
1、核心标签库JSTL的核心标签库标签共13个,从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。
使用这些标签能够完成JSP页面的基本功能,减少编码工作。
如:∙表达式控制标签:out标签、set标签、remove标签、catch标签。
∙流程控制标签:if标签、choose标签、when标签、otherwise标签。
∙循环标签:forEach标签、forTokens标签。
∙URL操作标签:import标签、url标签、redirect标签。
下面,演示各个标签的使用。
1.1、表达式控制标签。
(1)、<c:out>标签:用来显示数据对象(字符串、表达式)的内容或结果。
相当于<% out.println(“字符串”)%> 或 <%=表达式%>。
语法如下:∙【语法1】:<c:out value=”要显示的数据对象” [escapeXml=”true|false”] [default=”默认值”]>∙【语法2】:<c:out value=”要显示的数据对象” [escapeXml=”true|false”]>默认值</c:out>∙【语法1】:Java代码Java代码Java代码Java代码提示:从功能上分语法1和语法2、语法3和语法4的效果是一样的只是把value值放置的位置不同至于使用那个根据个人的喜爱,语法1和语法2是向scope范围内存储一个值,语法3和语法4是给指定的JavaBean赋值。
jstl核心库使用详解
JSTL核心库使用详解摘要:JSTL根据是否支持EL(表达式语言)表达式分为两套、每套包括四个部分:核心库、国际化操作、数据库相关操作和XML相关操作。
通过使用标签库,可是大大减少JSP 页面上的Java代码,建立结构清晰的JSP页面,从而利于JSP页面的维护。
本文主要介绍其中最常用的核心库的使用方法,其他部分的使用可以依此类推。
关键词:Java 标准标签库( Java Standard Tag Libraries, JSTL)1 JSTL概述JSTL是著名开源项目Jakarta Taglibs Project(/taglibs/index.html)的研究成果,JSTL为JSP页面开发者提供了最通用的标签。
功能主要包括通用编程逻辑封装、数据库相关操作、XML相关操作、国际化相关操作以及其他内容,并随着越来越多的人的开发和使用,将进一步提供更多的功能。
目前,JSTL主要包含在两个包中:stl.jar和standard.jar,其中在standard.jar包的/META-INF子目录下包含了相应的所有TLD文件,根据功能分为c*.tld、fmt*.tld、x*.tld、sql*.tld、permittedTaglibs.tld和scriptfree.tld,JSTL1.1版本中由于增加了常用函数库标签,所有还包括一个fn.tld。
这些TLD文件是根据标签功能来划分的,各自对应的功能很明显。
需要补充说明的是permittedTaglibs.tld和scriptfree.tld:permittedTaglibs.tld对应的是标签验证功能的,即定义了JSP页面可以使用哪些标签;而scriptfree.tld对应的是JSP页面验证功能的,它实现了更严格的JSP页面内容验证,可以验证页面是否可以包含形如“<%! declarations %>”的java声明、形如“<% scriptlets %>”的Java代码段以及形如<% =expressions %>的Java表达式。
JSTL标签和EL表达式使用笔记
JSTL标签和EL表达式使用笔记一般在jsp页面的头部都会应用一些标签库,一般就用下面这几个:<%@ page contentType="text/html; charset=UTF-8" language="java" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="/jsp/jstl/core"%><%@ taglib prefix="fmt" uri="/jsp/jstl/fmt"%><%@ taglib prefix="fn" uri="/jsp/jstl/functions"%>✧为了避免每个页面都写一次,可以把这些写在一个jsp文件里面,然后每个要用到这些标签的页面应用下就可以了。
✧<%@include file="../common/head.jsp"%>EL表达式截取字符串(使用JSTL) fn标签<%@ taglib uri="/jsp/jstl/functions" prefix="fn"%>上面的uri 根据你的实际情况定。
${fn:substring("你要截取的字符串"),beginIndex,endIndex}<%@ taglib prefix="fn" uri="/jsp/jstl/functions" %>下面是JSTL中自带的方法列表以及其描述函数名函数说明使用举例fn:contains 判定字符串是否包含另外一个字符串<c:if test="${fn:contains(name, searchString)}">fn:containsIgnoreCase 判定字符串是否包含另外一个字符串(大小写无关) <c:if test="${fn:containsIgnoreCase(name, searchString)}">fn:endsWith 判定字符串是否以另外字符串结束<c:if test="${fn:endsWith(filename, ".txt")}">fn:escapeXml 把一些字符转成XML表示,例如<字符应该转为< ${fn:escapeXml(param:info)}fn:indexOf 子字符串在母字符串中出现的位置${fn:indexOf(name, "-")}fn:join 将数组中的数据联合成一个新字符串,并使用指定字符格开${fn:join(array, ";")}fn:length 获取字符串的长度,或者数组的大小${fn:length(shoppingCart.products)}fn:replace 替换字符串中指定的字符${fn:replace(text, "-", "•")}fn:split 把字符串按照指定字符切分${fn:split(customerNames, ";")}fn:startsWith 判定字符串是否以某个子串开始<c:if test="${fn:startsWith(product.id, "100-")}">fn:substring 获取子串${fn:substring(zip, 6, -1)}fn:substringAfter 获取从某个字符所在位置开始的子串${fn:substringAfter(zip, "-")}fn:substringBefore 获取从开始到某个字符所在位置的子串${fn:substringBefore(zip, "-")}fn:toLowerCase 转为小写${fn.toLowerCase()}fn:toUpperCase 转为大写字符${fn.UpperCase()}fn:trim 去除字符串前后的空格${fn.trim(name)}函数描述包含fn:contains(string, substring)假如参数string中包含参数substring,返回truefn:containsIgnoreCase(string, substring)假如参数string中包含参数substring(忽略大小写),返回truefn:startsWith(string, prefix)假如参数string以参数prefix开头,返回truefn:endsWith(string, suffix)假如参数string 以参数suffix结尾,返回true组装/拆分fn:join(array, separator)将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JSTL使用
1.JavaServer Pages Standard Tag Library1.1JSP,它的中文名为JSP标准标签函数库。
JSTL是一个标签且已制定好标签函式库,可以应用于各种领域,例如:基本输出、输入、流出控制、循环、XML文件解析、资料库查询及国际化和文字格式标准化应用等。
JSTL所提供的标签涵式库主要分为五大类:
1.核心标签库(Core tag library)
2.I18N格式标签库(I18N-capable formatting tag library)
3.SQL标签库(SQL tag library)
4.XML处理(XML tag library)
5.函式功能(Functions tag library)
2.如何使用:
1).条件:
JSTL1.1必须在支持Servlet2.4且JSP2.0以上版本的Container才可使用。
JSTl主要是由Apache组件的Jakarta Project所开发,因此可以到下载相关资源。
2).使用:
(1).要使用JSTL标签必须在工程中先加入:jstl.jar和standard.jar包。
除了复制.jar外,最好也把tld目录也复制到WEB-INF中,以便日后使用,其中大多是JSTL1.0的文档。
(2).要在JSP中使用JSTL标签,必须使用<%@taglib%>指令,并且设定prefix和uri的值,如下:
<%@taglib prefix="c"uri="/jsp/jstl/core"%>其中JSTL1.0中uri="/jstl/core"
JSTL标签使用表:。