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 ...
随机推荐
- vs编译程序不能实现,“未能完成操作 未指定的错误”的解决办法
1.先把.vcproj 文件剪切到其他地方 2.打开.sln,报错->点“确定”->再点“确定” 3.把 .vcproj 文件 放回来,在vs2005右边的“解决方案”处右键 重新加载,就 ...
- Java基础 - 流程控制语句
package com.demo4; /* * 流程控制语句 * 流程控制语句分类: * 顺序结构 * 代码从上往下按照顺序执行 * * 选择结构 * if * if (关系表达式1) { * 语句体 ...
- js获取链接等号“=”后面的参数
用该属性获取页面 URL 地址: window.location 对象所包含的属性 属性 描述 hash 从井号 (#) 开始的 URL(锚) host 主机名和当前 URL 的端口号 hostnam ...
- 整理前端css/js/jq常见问题及解决方法(3)
jq: 1.prepend(参数);//将参数内容前置再某元素内部; eg: <div id="div1">奇妙能力歌</div> $("#div ...
- 关于主键(PRIMARY KEY)和自增(AUTO_INCREMENT)结合使用的知识点
1.主键(PRIMARY KEY)和自增(AUTO_INCREMENT)同时使用两种写法: a.主键(PRIMARY KEY)和自增(AUTO_INCREMENT)分两行写 创建一 ...
- 我的Android进阶之旅------>(全解析)屏幕尺寸,分辨率,像素,PPI之间到底什么关系?
作者:马忠信,作者授权早读课发表,转载请联系作者. 原文链接:http://www.jianshu.com/p/c3387bcc4f6e# 互联网早读课:http://zaodula.com/arc ...
- Linux中的输出重定向
标准输入输出: 键盘 /dev/stdin 0 标准输入 显示器 /dev/stdout 1 标准输出 显示器 /dev/st ...
- Android基础入门教程
http://www.kancloud.cn/wizardforcel/w3school-android/100491
- ACM解题之素矩阵
题意: 如果一个矩形的两条边都是素数,则称此矩形为素矩形.本题给出一个素矩形的面积,请计算其两条边的值.有多个测试用例.每个用例占一行,包含一个表示素矩形面积且不超过 108 的正整数.输入直至没有数 ...
- javascript语言基础知识
一.JavaScript语法的引入方式. 1.直接引入(在html的head中直接引入js语法) <script> js语法 </script> 2.导入文件(以导入文件的方式 ...