jstl标签库,通过maven配置:

 <!-- jstl标签的支持 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

  

常用标签:out、set、remove、catch、if、choose、when 和 URL

表达式操作标签包括 out、set、remove 和 catch。

1.out

out 标签的使用格式如下:
<c:out value=”object” [escapeXml=”true|false”] />
这个标签还可以有一个体,如下:
<c:out value=”object” [escapeXml=”true|false”] >default value</c:out>

  

这表示当 value 属性指定的 object 值为 null 时,就会显示体中指定的值(也就是 default value),体
中也可以是 JSP 代码。
<c:out>中的各个属性:
value:可以指定一个字符串作为输出内容,也可以为 EL 表达式,例如${3+5}。
escapeXml:类型为 boolean,确定<、>、&、’、”等这些字符在结构的字符串中是否被转换成字
符串实体代码,默认的是 true。
default value:可以是字符串,还是一个表达式(EL 表达式或者<%=表达式%>的 JSP 表达式)。
如果属性指定的表达式或者对象值为 null 时,那么将输出这个 default value 部分的值。

例子:

<h4><c:out value="第一个 JSTL 的 JSP 程序,使用 JSTL 的标签迭代输出信息"/></h4>

<%
String items[] = new String[3];
items[0] = "jstl标签库";
items[1] = "国际标签库";
items[2] = "sql标签库";
//把数组变量保存在request对象中
request.setAttribute("items", items); %>
<table border="1">
<c:forEach var="item" items="${items}">
<tr>
<td><c:out value="${item}"/></td>
</tr>
</c:forEach>
</table> <c:out value="${3+4}"/><br>
<c:out value="<p>有特色字符串</p>"/><br>
<c:out value="<p>有特色字符串</p>" escapeXml="false"/><br>

  

2.set

set 标签是使用来在某个范围(request、session 或者 application)内设值,或者设置某个对象的属性
值。
set 标签的使用格式如下:
(1)使用 value 属性在一个特定的范围内指定某个变量的值,其使用格式如下:
<c:set var=”varName” value=”varValue” [scope=”page|request|session|application”] />
(2)当使用 value 属性在一个特定范围内指定某个变量的值时,也可以包括一个体,它的作用和
out 标签体的作用一样,即 value 指定的值为 null 时,默认使用体中指定的值,使用格式如下:
<c:set var=”varName” value=” Value” [scope=”page|request|session|application”] >
default value
</c:set>
(3)设置某一个特定对象属性的使用格式如下:
<c:set property=”propertyName” target=”target” value=”value” />
(4)在设置某个特定对象的一个属性时,也可以有一个体,也指定默认值,使用格式如下:
<c:set property=”propertyName” target=”target” value=”value” >
default value
</c:set>
该标签中的各属性说明如下:
value:该属性指定变量或者对象中某个属性的值,并且可以是一个表达式。
var:变量名称,value 属性指定的值就保存在这个变量中
scope:设定变量的有效范围,如果不设置,则默认为 page。
target:设置属性的一个对象,它必须是 JavaBean 或者 java.util.Map 对象。
property:设置对象中的一个属性。

<c:set var="num1" value="${3+5}" scope="request"/>
<c:set var="num2" scope="session">
${3+6}
</c:set>
<c:set var="num3" scope="session">
10
</c:set> <br>
<!-- 通过out标签输出变量 -->
<c:out value="${num1}"/>
<c:out value="${num2}"/>
<c:out value="${num3}"/>

  

3.remove

remove 标签一般和 set 标签配套使用,两者是相对应的,remove 标签用于删除某个变量或者属性。
使用格式如下:

<c:remove var=”varName” [scope=”page|request|session|application”] />

remove 标签中使用的各属性说明如下:
scope:设定这个需要删除的变量所在范围。
 var:需要删除的变量或者对象属性的名称。
如果没有设置scope的属性,即采用默认值,那么就相当于调用PageContext.removeAttribute(varName)方法;如果指定了这个变量所在的范围,那么系统会调用 PageContext.removeAttribute(varName,scope)方法

<c:set var="num" scope="page" value="${3+5}" />
<c:set var="num" scope="request">
${3+6}
</c:set>
<c:set var="num" scope="session">
<c:out value="10"/>
</c:set> <!-- 变量显示 -->
<table border="1" width="50%">
<tr>
<td>pageScope.num</td>
<td><c:out value="${pageScope.num}" default="null"/></td>
</tr>
<tr>
<td>requestScope.num</td>
<td><c:out value="${requestScope.num}" default="null"/></td>
</tr>
<tr>
<td>sessionScope.num</td>
<td><c:out value="${sessionScope.num}" default="null"/></td>
</tr>
</table>
<br>
<!-- 使用remove删除page标签后的值 -->
<c:out value='<c:remove var="num" scope="page"/>之后的变量值:'/>
<c:remove var="num" scope="page"/>
<table border="1" width="50%">
<tr>
<td>pageScope.num</td>
<td><c:out value="${pageScope.num}" default="null"/></td>
</tr>
<tr>
<td>requestScope.num</td>
<td><c:out value="${requestScope.num}" default="null"/></td>
</tr>
<tr>
<td>sessionScope.num</td>
<td><c:out value="${sessionScope.num}" default="null"/>
</tr>
</table> <!-- 使用remove删除num标签 ,没有指定scope默认删除所有的num-->
<c:out value='<c:remove var="num"/>remove删除num后的值:'/>
<c:remove var="num"/>
<table border="1" width="50%">
<tr>
<td>pageScope.num</td>
<td><c:out value="${pageScope.num}" default="null"/></td>
</tr>
<tr>
<td>requestScope.num</td>
<td><c:out value="${requestScope.num}" default="null"/></td>
</tr>
<tr>
<td>sessionScope.num</td>
<td><c:out value="${sessionScope.num}" default="null"/></td>
</tr>
</table>

  

4.catch

catch 标签的功能和 Java 程序中 try…catch{}语句功能很类似,它用于捕获嵌入到它中间语句抛出的
异常。这个标签的使用格式如下:
<c:catch var=”varName” >
相关操作语句
</c:catch>

 <c:catch var="errors">
<% String num = request.getParameter("num");
int i = Integer.parseInt(num);
out.print("num is " + i); %>
</c:catch>
<c:out value="${errors}"/>

jsp: jstl标签库的更多相关文章

  1. jsp jstl标签库核心标签

    JSTL标签库介绍 JSTL标签库的使用时为了弥补html标签的不足,规范自定义标签的使用而诞生的.使用标签的目的就是不希望在jsp页面中出现java逻辑代码 全称:JSTL标签库分类 核心标签库使用 ...

  2. jsp jstl标签库 el表达式

    一.JSTL标签是什么? 提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言. 同时还提供了格式化数据和日期的方法.实现这些功能需要I18N格式标签库(I18N-c ...

  3. jsp:jstl标签库国际化 fmt

    首先资源文件目录是:src/man/sources (这是它默认的资源文件) i18n_en_US.properties文件内容 copyright=Copyright \u00A9 2013 lan ...

  4. jsp: jstl标签库 uri标签

    与 URL 相关的标签主要是用来将其他文件包含进来,或者提供页面之间的重定位以及 URL 地址的生成.参数的输出等等.一般包括如下几个标签<c:import>标签:与传统 JSP 页面中的 ...

  5. JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

  6. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

  7. JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

    1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% requ ...

  8. JSTL标签库中<c:choose></c:choose>不能放JSP页面<!-- -->注释

    笔者最近在使用JSTL标签库的<c:choose>标签时候,发现在该标签体中加了JSP的<!-- -->注释时,总是会显示报错信息.错误的信息如下: <span styl ...

  9. jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门

    一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...

随机推荐

  1. MiniUI 在线示例

    引用 http://miniui.com/demo/#src=datagrid/celledit.html

  2. win7安装laravel

    使用Packagist 镜像 建立一个composer.json文件,内容如下: { "name": "laravel/laravel", "desc ...

  3. Linux中变量测试与内容替换

  4. SaltStack远程执行shell脚本

    编辑文件fansik.sh 脚本内容: #!/bin/bash # Author: fansik # data: 2017年 09月 26日 星期二 :: CST touch /tmp/fansik. ...

  5. split命令

    语法:split [OPTION]... [INPUT [PREFIX]]常用参数说明: -a, --suffix-length=N            generate suffixes of l ...

  6. 面向对象高级编程——使用__slots__

    正常情况下,我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: >>> class Student ...

  7. python删除列表中所有的空元素

    while '' in list: list.remove('')

  8. spark学习(1)--ubuntu14.04集群搭建、配置(jdk)

    环境:ubuntu14.04 jdk-8u161-linux-x64.tar.gz 1.文本模式桌面模式切换 ctrl+alt+F6 切换到文本模式 ctrl + alt +F7 /输入命令start ...

  9. 生信概念之global alignment VS local alignment

  10. HashSet,TreeSet和LinkedHashSet的区别

    1. Set接口 Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false. Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个 ...