jsp: jstl标签库
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标签库的更多相关文章
- jsp jstl标签库核心标签
JSTL标签库介绍 JSTL标签库的使用时为了弥补html标签的不足,规范自定义标签的使用而诞生的.使用标签的目的就是不希望在jsp页面中出现java逻辑代码 全称:JSTL标签库分类 核心标签库使用 ...
- jsp jstl标签库 el表达式
一.JSTL标签是什么? 提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言. 同时还提供了格式化数据和日期的方法.实现这些功能需要I18N格式标签库(I18N-c ...
- jsp:jstl标签库国际化 fmt
首先资源文件目录是:src/man/sources (这是它默认的资源文件) i18n_en_US.properties文件内容 copyright=Copyright \u00A9 2013 lan ...
- jsp: jstl标签库 uri标签
与 URL 相关的标签主要是用来将其他文件包含进来,或者提供页面之间的重定位以及 URL 地址的生成.参数的输出等等.一般包括如下几个标签<c:import>标签:与传统 JSP 页面中的 ...
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- 重温JSP学习笔记--JSTL标签库
以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...
- JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)
1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% requ ...
- JSTL标签库中<c:choose></c:choose>不能放JSP页面<!-- -->注释
笔者最近在使用JSTL标签库的<c:choose>标签时候,发现在该标签体中加了JSP的<!-- -->注释时,总是会显示报错信息.错误的信息如下: <span styl ...
- jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门
一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...
随机推荐
- 比较运算符compareTo()、equals()、==之间的区别
前言 首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类): equals:是否同一个对象实例.注意,是 ...
- 洛谷 P1640 [SCOI2010]连续攻击问题
洛谷 一句话题意: 每个武器有两种属性,每种武器只能选择一种属性,从属性1连续递增才算攻击,求最大连续攻击次数. 因为同学告诉我这是二分图最大匹配,自然就往那个方向去想. 那么怎么建图呢? 每个武器只 ...
- django实现密码加密的注册(数据对象插入)-结合forms表单实现表单验证
forms表单 #_*_coding:utf-8_*_ from django import forms class regis(forms.Form): username = forms.CharF ...
- JS获取短信验证码60秒
<script language="javascript"> function get_mobile_code(){ $.post("{{ ...
- if控制器+循环控制器+计数器,控制接口分支
但是我不想这么做,接口只想写一次,让循环控制器和if控制器去判断接口,执行我想要的分支.这里遇到了一个问题,if控制器通过什么去判断接下来的分支?我引入了一个计数器的概念.起始值为0,每次循环加1,将 ...
- 稀疏自动编码器 (Sparse Autoencoder)
摘要: 一个新的系列,来自于斯坦福德深度学习在线课程:http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial.本文梳理了该教程第一 ...
- mysql学习笔记—常用sql语句
sql注意事项: SQL 对大小写不敏感:SELECT 与 select 是相同的 某些数据库系统要求在每条 SQL 语句的末端使用分号. CREATE DATABASE CREATE DATABAS ...
- Python基础-文件的基本操作
测试文件fansik内容如下:This is line 1This is line 2This is line 3This is line 4This is line 5This is line 6 ...
- Python之模块和包(Day21)
一.Python模块 Python模块(module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句. 模块让你能够有逻辑的组织你的Python代码段 把相关的代 ...
- C# partial 关键字
C# partial关键字详解 partial关键字允许把类.结构或接口放在多个文件中.一般情况下,一个类存储在单个文件中.但有时,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的 ...