JSTL详解内容

合集下载

JSTL经典语法详解

JSTL经典语法详解

JSTL语法及参数JSTL包含以下的标签:常用的标签:如<c:out>、<c:remove>、<c:catch>、<c:set>等条件标签:如<c:if><c:when>、<c:choose>、<c:otherwise>等URL标签:如<c:import>、<c:redirect>和<c:url>等XML标签:如<xml:out>等国际化输出标签:如<fmt:timeZone>等SQL标签:如<sql:query>、<sql:update>、<sql:transaction>等一般用途的标签:1.<c:out>没有Body时的语法<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/>有Body时的语法<c:out value=”value” [escapeXml=”{true|false}”]>这里是Body部分</c:out>名字类型描述value Object 将要输出的表达式escapeXml boolean 确定以下字符:<,>,&,’,”在字符串中是否被除数,默认为truedefault Object 如果vaule计算后的结果是null,那么输出这个默认值2.<c:set>这个标签用于在某个范围(page、request、session、application等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。

他类似于<%request.setAttrbute(“name”,”value”);%> 语法1:使用value属性设定一个特定范围中的属性。

JSTL标签用法详解

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表达式与el表达式的理解

jstl表达式与el表达式的理解

jstl表达式与el表达式的理解JSTL(JSP Standard Tag Library)和EL (Expression Language)是在JSP中使用的两种不同的表达式语言。

JSTL是一组用来简化JSP页面开发的标签库,而EL是一种用于在JSP页面中进行表达式求值的语言。

这两种表达式语言在JSP页面中使用的方式和功能都有所不同。

JSTL表达式是一种通过标签进行数据处理和逻辑控制的方式。

它使用XML风格的标签来执行特定的操作,可以在JSP页面中实现循环、条件判断、字符串处理、日期处理等功能。

JSTL标签库包含多个不同的标签,如core、fmt、xml、sql等。

每个标签库都有一组标签,用于执行相关的操作。

例如,core标签库包含常用的循环和条件判断标签,fmt标签库包含日期和国际化相关的标签。

JSTL表达式可以通过标签来对数据进行处理。

例如,使用c:forEach标签可以对一个集合进行循环遍历,使用c:if标签可以进行条件判断。

在JSTL表达式中还可以使用EL表达式来获取和操作数据。

JSTL的标签和EL表达式可以相互结合使用,以实现更复杂的数据处理和逻辑控制。

EL表达式是一种简洁且易于使用的表达式语言,用于在JSP页面中进行数据访问和操作。

它使用类似于JavaScript的语法,可以方便地访问JavaBean中的属性和方法,以及JSP页面中的参数和属性。

EL表达式支持基本的数据类型、容器类型(如数组、列表、映射等)、运算符和函数调用。

EL表达式的语法包括使用${}来表示EL表达式的起始和结束,可以在${}中使用变量、属性、方法和运算符来进行数据访问和操作。

EL表达式可以在JSP页面中直接使用,也可以作为JSTL标签的属性值使用。

例如,可以使用${}来获取一个JavaBean对象user 的name属性值,可以使用${}来获取一个请求参数的值。

JSTL表达式与EL表达式的主要区别在于它们的语法和功能。

SpringMVC学习之JSTL条件行为和遍历行为详解

SpringMVC学习之JSTL条件行为和遍历行为详解

SpringMVC学习之JSTL条件⾏为和遍历⾏为详解JSTL条件⾏为和遍历⾏为JSTL的条件⾏为标签有四个:if,choose,when,otherwise标签1、if标签是对某⼀个条件进⾏测试,结果为true就执⾏它的body content。

测试结果保存在Boolean对象中,并创建有届变量来保存这个Boolean对象。

利⽤var和scope属性分别定义有界变量的名称和范围。

两种形式:1) 没有body content<c:if test="condition" var="varName" [scope="page|request|session|application"] />此情况的var ⼀般是通过其他标签在同⼀个JSP的后续阶段再进⾏测试2)<c:if test="conditin" [var="varName"] [scope="page|request|session|application"] >body content</c:if>if标签的属性属性类型描述test+布尔决定处理任何现有bodycontent的测试条件var字符串引⽤测试条件值的有界变量名称;var的类型为Booleanscope字符串var定义的有界变量的范围PS:模拟else的情况可⼀使⽤两次if,⼀次正常,⼀次相反2、choose when 和otherwise标签choose,when和Java中的switch,case类似choose标签中必须嵌有⼀个或者多个when标签,每个when标签都表⽰⼀种可以计算和处理的情况,otherwise标签则⽤于默认的条件块,假如没有任何⼀个when标签的处理结果为true,则otherwise将被处理,otherwise必须放在最后⼀个when之后. choose和otherwise标签没有属性,when标签必须带有定义测试条件的test属性,⽤来决定是否处理bodycontent.3、遍历⾏为forEach3.1 forEach 会⽆数次的反复遍历body content 或者对象的集合可以被遍历的对象包括java.util.Collection,java.util.Map的全部实现,以及对象数组或者主类型,有两种形式:1) 固定的次数重复body content<c:forEach [var="varName"] begin="begin" end="end" step="step" >body content</c:forEach>2) ⽤于遍历对象集合<c:forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [ end="end"] [step="step"]>body content</c:forEach>forEach标签的属性属性类型描述var字符串引⽤遍历当前项⽬的有界变量名称⽀持的任意items+类型遍历的对象的集合varStatus字符串保存遍历状态的有界变量的名称,类型值是javax.servlet.jsp.jstl.core.LoopTagStatus,带有count属性,返回当前的次数begin+整数如果指定items,遍历将从指定的索引处的项⽬开始,如果没有指定items,遍历将从设定的索引值开始,如果指定begin必须⼤于等于0end+整数如果指定items,遍历将从指定的索引处的项⽬结束,如果没有指定items,遍历将从设定的索引值结束step+整数遍历将只处理间隔指定step的项⽬,从⼀个项⽬开始,在这种情况下,step的值必须⼤于等于1PS:var创建的有界变量的名称只在该forEach中使⽤,⼀到</c:forEach>处就会被删除。

简述jstl的作用

简述jstl的作用

简述jstl的作用JSTL,指的是JavaServer Pages(JSP)标准标签库。

它是一套专为基于JSP的Web应用程序设计的标准标签集合,它提供了对JSP编程中复杂又频繁出现的操作和需要的功能封装。

JSTL是一个标准标签库,由 JavaSoft出,整合了以下5个子库:1.心:定义控制结构,比如循环、条件等;2. XML:用于处理XML文档;3.式化标记:定义了国际化、数字、日期和消息格式化标签;4. SQL:定义SQL标记;5. 事务:提供了基本的数据库操作支持。

JSTL的标签可以替代JSP的脚本块,使我们的JSP文件更加简洁,代码也更易于阅读和维护。

使用JSTL提供的标签,可以使我们的代码更加简洁优雅,增强可维护性,可以和xml、xsl结合来提供复杂的数据显示,可以利用JSTL定义的标签来实现对XML数据的读取、把XML数据转换成HTML页面能识别的格式,可以利用JSTL定义的标签来调用JavaBean属性以及调用JavaBean方法,可以方便地调用数据库服务,以及简单的使用EL表达式等等。

JSTL的优势在于它提供了一组可重用的标签,允许我们以更简洁、更容易理解的方式来完成我们的工作,这也极大地简化了JSP页面的构建和维护。

JSTL不仅极大地提高了JSP的开发效率,而且与其他类库高度整合,比如struts等,实际上,JSTL作为J2EE技术栈中重要的部分,已经广泛地被公司和企业所接受。

总之,JSTL为J2EE技术栈提供了一种更加高效、更加优雅的开发方式,它极大地丰富了JSP的功能,为Web应用的开发提供了更多的思路,并且它把JSP的静态性质变成了动态性质,使得开发者可以更加灵活,也使得开发者更容易维护JSP,并且JSTL支持多种标准,比如XML、SQl等,这也使得Web的开发效率更加高效准确。

jstl用法

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 使用简介

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教程 -V1.0

JSTL教程 -V1.0

. 内部资料不得拷贝JSTLJSTL标准标签库AURISOFTJSTL和EL简介JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。

现在最新版本的JSTL是1.1.2 。

说到了JSTL 就一定要说EL(expression language) jsp的表达式语言,这是一种简单的语言,它是JSP2.0规范的一个新特点。

在之前的JSP中,Java代码以Scriptlet的形式嵌入JSP 页面:<% =str%>。

现在我们可以通过${str}这样的形式来访问后台的数据了。

表达式语言有以下特点:●可获得的名称空间(PageContext属性)。

●嵌套的属性,可以访问集合对象。

●可以执行关系的、逻辑的和算数的运算。

●扩展函数可以和Java类的静态方法映射。

●它可以访问JSP的一系列的隐含对象(request、session、application、page等)。

通过表达式语言,可以非常简单的访问JavaBean中的属性,比如JSP中可以这样访问一个简单的参数:$ {userName} 也可以这样反问一个嵌套的参数:${erName.firstName}表达式语言也可以和JSTL结合使用,如:<c:if test=”${sessionScope.cart.numberOfItems > 0}”>……</c:if>表达式可以包含运行逻辑,如:<c:if test = “${bean1.a < 3 && bean1.a >0”}>……<c:if>表达式包含在${}之间,如果需要在客户端输出${字符,那么可以使用以下的方式:<c:out value=”an expression is ${‘${‘}true}”/>由于在jsp2.0以前没有表达式语言,所以jsp2.0以前的代码中可以包含${之类的代码,如果试图解析这些表达式,肯定造成错误,为了和jsp以前的规范兼容,可以在页面前面声明是否忽略表达式,声明语句如下:<%@ page isELIgnored=”true|false”%>下面我们来看一下EL的操作和他们的优先级别,最上边的优先级高,然后是左边的高:[],()unary -、not、!、empty*、/、div(除)、%、mod (取模)+、binary –< 、>、<=、>=、lt(小于)、gt(大于)、le(小于等于)、ge(大于等于)==、!=、eq(等于)、ne(不等于)&&、and (与)||、or(或)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

先来搭下环境,jstl的包当然是不能少的拉。

其次,下载必须的标签库或者是j ava的标签库文件。

没有的话,也可以联系我xxx_programer@ 将jstl 1.1.jar加到class中,(这就不要我详细的讲了吧),然后将标签库放到WEB-INF下或则将java的标签库文件(*.jar)放到WEB-INF\lib下,就可以写测试代码了。

first_jstl.jsp<%@ taglib prefix="c" uri="/jsp/jstl/core" %> <%@ page contentType="text/html; charset=gb2312" language="java" %><c:set var="userName" value="hellking"/><c:set value="16" var="age"/>欢迎您,<c:out value="${userName}"/><hr><c:forEach var="i" begin="1" end="5"><font size=${i}>${i}</font><br></c:forEach><c:if test="${age<18}">对不起,你的年龄过小,不能访问这个网页◎!</c:if><br></body></html>web.xml(使用java的标签库文件*.jar)<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee web-app_2_4.x sd"version="2.4"><display-name>jstl test</display-name><description>jstl test</description></web-app>(使用标签库文件*.tld)<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee http://java.s /xml/ns/j2ee/web-app_2_4.xsd"version="2.4"><taglib><taglib-uri>/jstl/fmt</taglib-uri><taglib-location>/WEB-INF/fmt.tld</taglib-location></taglib><taglib><taglib-uri>/jstl/fmt-rt</taglib-uri><taglib-location>/WEB-INF/fmt-rt.tld</taglib-location></taglib><taglib><taglib-uri>/jstl/core</taglib-uri><taglib-location>/WEB-INF/c.tld</taglib-location></taglib><taglib><taglib-uri>/jstl/core-rt</taglib-uri><taglib-location>/WEB-INF/c-rt.tld</taglib-location></taglib><taglib><taglib-uri>/jstl/sql</taglib-uri><taglib-location>/WEB-INF/sql.tld</taglib-location></taglib><taglib><taglib-uri>/jstl/sql-rt</taglib-uri><taglib-location>/WEB-INF/sql-rt.tld</taglib-location></taglib><taglib><taglib-uri>/jstl/x</taglib-uri><taglib-location>/WEB-INF/x.tld</taglib-location></taglib><taglib><taglib-uri>/jstl/x-rt</taglib-uri><taglib-location>/WEB-INF/x-rt.tld</taglib-location></taglib></web-app>好了,一个最简单的包含有jstl的页面设计完成了。

下面测试。

http://localhost:8080/jstl/frist_jstl.jsp页面输出结果:欢迎您,hellking12345对不起,你的年龄过小,不能访问这个网页◎!JSTL详解(二)一般用途的标签在JSTL中,一般用途的标签只要是指具有输出,设置变量,和错误处理等功能的标签,他们在jsp中使用很频繁,它们有:●<c:out>●<c:set>●<c:remove>●<c:catch>下面,我来讲述一下他们的作用:<c:out>它是一个输出的标签,负责把计算出的结果输出到jspwriter,就跟调用out.println()基本一样。

没有BODY的时候,使用下面的语法:<c:out value=”value” [escapeXml]=”{true|false}” [default=”defaultValue”]/>有BODY的时候,使用下面的语法:<c:out value=”value” [escapeXml]=”{true|false}” >这里是BODY,可以是任何合法的jsp或者是html代码。

</c:out>注意,escapeXml的作用是是否将代码交给xml解析器解释,true为交给xml解析器解释,false 为交给浏览器解释,见红色部分代码举例:c_out.jsp<%@ taglib prefix="c" uri="/jsp/jstl/core" %><%@ page contentType="text/html; charset=gb2312" language="java" %><html><head><title>JSTL: c:out的使用</title></head><body bgcolor="#FFFFFF"><hr><c:set var="sessionAttr" value="sessionValue" scope="session"/><c:set var="pageAttr" value="pageValue" scope="page"/><c:set var="requestAttr" value="requestValue" scope="request"/><c:out value="以下输出的是前面设置的属性<br>" escapeXml="false"/><c:out value="${sessionAttr}"/><c:out value="${pageAttr}"/><c:out value="${requestAttr}"/><c:out value="${test_nodef}" default="没有test_nodef这个变量"/></html><c:set>这个标签用于在某个范围(page,request,session,application)里面设置特定的值(默认为page),或者设置某个已经存在的javabean的属性。

类似于<%request.setAttribute(“name”,value)%>语法:1、使用value属性设置一个特定范围里面的属性:<c:set value=”value” var=”varName” [scope=“{page|request|session|application}”]/ >2、使用value属性设置一个特定范围里面的属性,带有BODY:<c:set value=”value” var=”varName” [scope=“{page|request|session|application}”] >Body content</c:set>3、设置某个特定对象的一个属性:<c:set value=”value” target=”target” property=”propertyName”/ > 4、设置某个特定对象的一个属性, 带有BODY:<c:set value=”value” target=”target” property=”propertyName” > Body content</c:set>举例:c_set.jsp<%@ taglib prefix="c" uri="/jsp/jstl/core" %><%@ page contentType="text/html; charset=gb2312" language="java" %><jsp:useBean id="user" class="er"/><html><head><title>JSTL:的使用c:set</title></head><body bgcolor="#FFFFFF"><hr>设置一个属性,然后输出它<br><c:set var="maxCount" value="100"/><c:out value="${maxCount}"/><hr>设置属性时,把它的值放在标签的body中。

相关文档
最新文档