jsp jstl标签库核心标签
JSTL标签库介绍
JSTL标签库的使用时为了弥补html标签的不足,规范自定义标签的使用而诞生的。使用标签的目的就是不希望在jsp页面中出现java逻辑代码
全称:JSTL标签库分类
核心标签库使用说明
JSTL的核心标签库标签供13个,使用这些标签能够完成JSP页面的基本功能,减少编码工作。
从功能上可以分为4类:表达式控制标签,流程控制标签,循环表桥,URL操作标签。
表达式控制标签:out标签、set标签、remove标签、catch标签
流程控制标签:if标签、choose标签、when标签、otherwise标签
循环标签: forEach标签、forTokens标签
URL操作标签:import标签、url标签、redirect标签、param标签
在JSP页面引入核心标签库的代码为<%@ taglib prefix="gs" uri="http://java.sun.com/jsp/jstl/core" %>
out标签
out标签功能:用来输出数据对象(字符串,表达式)的内容或结果
在使用java脚本是常使用的方式为:<% out.println("字符串")%>或者<%= 表达式%>,web开发中尽可能的避免在页面使用java脚本,使用<c:out>标签就可以实现以上功能。
out标签语法:
<gs:out value="需要显示的信息" [escapeXml="true/false"] [default="默认值"] />
<gs:out value="要显示的数据对象" [escapeXml="true|false"] [default="默认值"] 这些使用[]属性表示不是必须的。
out标签的属性
| 属性名 | 是否支持EL | 属性类型 | 属性描述 |
|---|---|---|---|
| value | true | Object | 指定需要输出的内容 |
| escapeXml | true | Boolean | 指定是否将>、<、&、'、"等特殊字符进行HTML编码转换后在进行输出,默认为true |
| default | true | Object | 指定如果value属性的值为null时所输出的默认值 |
jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
out直接输出字符串:
<gs:out value="this is tag Value!"></gs:out>
<br/>
<!-- escapeXml html字符转义 true 输出为正常文本,false输出为html转义文本-->
<gs:out value="<a href='www.baidu.com'> 百度 </a>"></gs:out>
<gs:out value="<a href='www.baidu.com'> 百度 </a>" escapeXml="false"></gs:out>
<br/>
</body>
</html>
set标签
set标签功能:用于把某一个对象存在指定的域范围内,或者将一个对象存储到Map或者JavaBean对象中
set标签语法:
<gs:set value="值1" var="name1" [scope="page|reqest|session|application"] />
把一个变量名为name1值为"值1"的变量存储在指定的scope范围内。
<gs:set var="name2" [scope="page|request|session|application"]>值2</gs:set>
把一个变量名为name2,值为值2的变量存储在指定的scope范围内。
<gs:set value="值3" target="javaBean对象" property="属性名" />
把一个值为"值3"赋值给指定的JavaBean的属性名
<gs:set target="JavaBean对象" property="属性名"/>值4</gs:set>
把一个值4赋值给指定的JavaBean的属性名
set标签属性
| 属性名 | 是否支持EL | 属性类型 | 属性描述 |
|---|---|---|---|
| value | true | object | 用于指定属性值 |
| var | false | string | 用于自定要设置的web于属性的名称 |
| scope | false | string | 用于指定属性所在的web域 page request,session ,application |
| target | true | object | 用于指定要设置的属性对象,这个对象必须是JavaBean对象或Java.util.Map对象 |
| property | true | string | 用于指定当前要设置的属性名称 |
jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="jsp.jstl.Person" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<%@ page isELIgnored="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
set设置值:
<gs:set value="rssgao" var="raouo" scope="request"></gs:set>
<gs:set value="sssgao" var="saouo" scope="session"></gs:set>
<gs:set value="assgao" var="aaouo" scope="application"></gs:set>
<gs:set value="ssgao" var="aouo" ></gs:set>
<p>${requestScope.raouo}</p>
<p><gs:out value="${sessionScope.saouo}"></gs:out></p>
<p>${aouo}</p>
<p><%=request.getAttribute("raouo") %></p>
<p><%=session.getAttribute("saouo") %></p>
<p><%=application.getAttribute("aaouo") %></p>
<p><%=pageContext.findAttribute("aouo") %></p> <!-- 未指定scope的范围,会从不同的范围内查找得到相应的值: -->
set设置对象
<jsp:useBean id="person" class="jsp.jstl.Person" />
<jsp:setProperty name="person" property="pname" value="gs"/>
<gs:set target="${person}" property="age"> 27 </gs:set>
<gs:set target="${person}" property="addr">HZ</gs:set>
<p><%=person.getPname() %></p>
<gs:out value="${person.addr}"></gs:out>
</body>
</html>
remove标签
remove标签功能:用来从指定的JSP范围内移除指定的变量
remove标签语法:
<gs:remove var="变量名" [scope="page|request|session|application"] />
其中var 属性是必须的,scope可以省略
JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<gs:set value="ssgao" var="name" scope="request" />
<gs:set value="ssgao" var="name" scope="session" />
<gs:out value="${sessionScope.name }" />
<gs:remove var="name" scope="request" />
<gs:out value="${requestScope.name }" />
</body>
</html>
表达式控制标签
catche标签
catch标签功能:用于捕获嵌套在标签体中的内容抛出的异常、
catch标签语法:
<gs:catch [var="varName"]> 容易产生异常的代码 </gs:catch>
var 属性用于标识catch标签捕获的异常对象,它将保存在page这个WEB域中,
jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<%@ page import="jsp.jstl.Person" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<gs:catch var="error" >
<gs:set target="person" property="name">ssgao</gs:set>
</gs:catch>
<gs:out value="${error}"></gs:out>
</body>
</html>
if标签
if标签功能:用来实现条件控制。
if标签语法:
<gs:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
<gs:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
标签体内容
</gs:if>
if标签属性
| 属性名 | 是否支持EL | 属性类型 | 属性描述 |
|---|---|---|---|
| test | true | boolean | 决定是否处理标签体中的内容的条件表达式 |
| var | false | String | 用于指定将test属性的执行结果保存到某个web域中的某个属性的名称 |
| scope | false | String | 将test属性指行结果保存哪个web域中 |
JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<%@ page import="jsp.jstl.Person" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>${_name}</p>
<gs:out value="${_name}"/>
<gs:if test="${_name}=='if'" var="flag" scope="request" />
<gs:out value="${flag}"/>
</body>
</html>
流程控制标签
choose、when、otherwise标签
choose,when,otherwise这3个标签通常情况下是一起使用的,choose标签作为when和otherwise标签的父标签来使用。
使用choose,when,otherwise三个标签,可以构造类似"if-else if -else"的复杂条件判断结构
标签语法
<gs:choose>
<gs:when test="条件1"> 业务逻辑1 </gs:when>
<gs:when test="条件2"> 业务逻辑2 </gs:when>
<gs:otherwise> 业务逻辑 </gs:otherwise>
</gs:choose>
JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<%@ page import="jsp.jstl.Person" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
choose标签
<gs:set var="score" value="55" />
<gs:out value="${score}" />
<gs:choose>
<gs:when test="${score>50}">
大于50
</gs:when>
<gs:when test="${score<40}">
小于50
</gs:when>
<gs:otherwise>
其他数据信息
</gs:otherwise>
</gs:choose>
</body>
</html>
循环标签
forEach标签
forEach标签功能:根据循环条件遍历集合中的元素
forEach标签语法:
<gs:forEach var="name" items="Collection" varStatus="StatusName" begin="begin" end="end" step="step"> 本体内容 </gs:forEach>
var 设定变量名用于存储从集合中取出元素
items指定要遍历的集合
varStatus设定变量名,该变量用于存放集合中元素的信息
begin,end用于指定遍历的起始位置和终止位置
step用于指定循环步长
| 属性名称 | 是否支持EL | 属性类型 | 是否必须 |
|---|---|---|---|
| var | no | String | 是 |
| items | yes | Arrays | |
| Collection | |||
| Iterator | |||
| Eunmeration | |||
| Map | |||
| String[] | args | 是 | |
| begin | yes | int | 否 |
| end | yes | int | 否 |
| step | yes | int | 否 |
| varStatus | no | String | 否 |
varStatus的4个状态
| 属性名 | 类型 | 说明 |
|---|---|---|
| index | int | 当前循环的索引值 |
| count | int | 循环的次数 |
| first | boolean | 是否为第一个位置 |
| last | boolean | 是否为最后一个位置 |
JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<%@ page import="jsp.jstl.Person,java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
List<String> list=new ArrayList<String>();
list.add("A");
list.add("B");
request.setAttribute("list", list);
%>
<gs:forEach var="item" items="${list }">
<gs:out value="${item }"></gs:out>
</gs:forEach>
<gs:forEach var="item" items="${list }" begin="1" end="2" step="1">
<gs:out value="${item }" />
</gs:forEach>
<gs:forEach var="item" items="${list }" begin="1" end="2" varStatus="zt" step="1" >
<gs:out value="${item }" />
<gs:out value="${zt.index }" />
<gs:out value="${zt.count }" />
<gs:out value="${zt.first }" />
<gs:out value="${zt.last }" />
</gs:forEach>
</body>
</html>
forTokens标签
forToken标签功能:用于浏览字符串,并根据指定的字符将字符串截取
forToken标签语法:
<gs:forTokens items="strngOfTokens" delims="delimiters" [var ="name" begin="begin" end="end" step="len" varStatus="statusName"]>本体内容</forTokens>
items:指定被迭代的字符串
delims:指定使用的分隔符
var:指定用来存放遍历到的成员
begin:指定遍历的开始位置(int 型从取值0开始)
end:指定遍历结束的位置(int 型,默认集合中最后一个元素)
step;遍历步长
varStatus:存放遍历到的成员的状态信息
JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<%@ page import="jsp.jstl.Person" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<gs:forTokens var="str" items="北,京,欢,迎,您!" delims=",">
<gs:out value="${str }" />
</gs:forTokens>
<gs:forTokens var="n" items="1*2*3*4*5*6*7" delims="*" begin="1" end="3" varStatus="s">
<gs:out value="${n }" />
<gs:out value="${s.index }" />
<gs:out value="${s.count }" />
<gs:out value="${s.first }" />
<gs:out value="${s.last }" />
</gs:forTokens>
</body>
</html>
URL操作标签
import标签
import标签功能:把其他静态或动态文件包含到本JSP页面,与jsp:include的区别是jsp:import只可以包含同一个web应用中的文件,而import标签则可以包含其他web应用中的文件,甚至是网络上的资源
import标签语法
<gs:import url="url" [content="context"] [value="value"] [scope="page|request|session|application"] [charEncoding="encoding"] />
<gs:import url="url" varReader="name" [context="context"] [charEncoding="encoding"] />
import标签参数说明
URL为资源的路径,当引用的资源不存在时,系统就会抛出异常,因此该语句应该放在<gs:catch></gs:catch>语句块中捕获。
引用资源有两种方式:绝对路径和相对路径
使用绝对路径的示例:<gs:import url="http://www.baidu.com">
使用相对路径的示例:<gs:import utl="aa.txt"> aa.txt放在同一个文件目录
如果以"/"开头表示应用的跟目录、例如tomcat应用程序的根目录文件为webapps.导入webapps文件下的文件bb.txt编写方式为<gs:import url="/bb.txt">
如果访问webapps管理文件夹中其他的web应用就要用contxt属性
context属性用于在访问其他web应用文件时,指定根目录。例如,访问root下的index.jsp的实现代码为<gs:import url="/index.jsp" context="root">
等同于webapps/root/index.jsp
var scope charEncoding varReader是可选属性
url标签
url标签功能:用于在JSP页面中构造一个URL地址,其主要目的是实现URL重写
url标签语法:
<gs:url value="value" [var="name"] [scope="page|request|session|application"] [context="context"] />
<gs:url value="value" [scope="page|request|session|application"] [context="context"] >
<gs:param name="参数名" value="值" />
</gs:url>
url标签属性
| 属性名 | 是否支持EL | 属性类型 | 属性描述 |
|---|---|---|---|
| value | true | String | 指定要构造的URL |
| var | false | String | 指定将构造出的URL结果保存在web域中的属性名称 |
| scope | false | String | 指定将构造出的URL结果保存那个Web域中 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<%@ page import="jsp.jstl.Person" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<gs:url value="http://www.baidu.com" var="url" scope="session">
<gs:param name="userName" value="15336506416" />
<gs:param name="pwd">ssgao1987</gs:param>
</gs:url>
<a href="${url }" >百度首页</a>
</body>
</html>
redirect标签
redirect标签的功能:实现请求重定向,同事配合使用param标签在URL中加入指定的参数
redirect标签的语法:
<gs:redirect url="url" [context="context"] />
<gs:redirect url="url" [context="context"] >
<gs:param name="name1" value="value1" />
</gs:redirect>
redirect标签的属性
| 属性名 | 是否支持EL | 属性类型 | 属性描述 |
|---|---|---|---|
| url | true | string | 指定要转换或重定向到的目标资源的url地址 |
| context | true | string | 当要使用相对路径重定向到同一个服务器下的其他WEB应用程序中的资源时 ,context属性指定其他web应用程序的名称 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="gs"%>
<%@ page import="jsp.jstl.Person" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<gs:redirect url="http://www.baidu.com">
<gs:param name="userName">gs</gs:param>
<gs:param name="pwd">ssgao1987</gs:param>
</gs:redirect>
</body>
</html>
param标签
在JSP页面进行url的相关操作时,经常要在url后面附加一些参数。<gs:param>标签可以嵌套在import标签、url标签、或redirect标签。为这些标签所使用的url地址附加参数。param标签在为一个url地址附加参数时,将自动对参数值进行url编码,
ps: 如果传递的是"中国" 则转换为%D6%d0%B9%FA"后再附加到url地址后面,这就是使用param标签的最大好处。
jsp jstl标签库核心标签的更多相关文章
- JSTL标签库--核心标签库
->JSTL的使用和EL表达式是分不开的 ->JSTL标签库分为5类 1.核心标签库(这里只介绍该标签库) 2.I18N格式化标签库 3.SQL标签库 4.XML标签库 5.函数标签库 - ...
- JSP标准标签库(JSTL)之核心标签(上)
在myeclipse中新建web项目时,会自动为我们安装JSTL库,如下图: 核心标签是我们最常用的JSTL标签.在JSP页面中引用核心标签库的语法如下: <%@ taglib uri=&quo ...
- JSTL函数标签库 fn标签
JSTL函数标签库 fn标签 在使用jstl的函数标签库之前需要在页面中引入: <%@ taglib prefix="fn" uri="http://java.su ...
- JSP标准标签库(JSTL)之核心标签(下)
前面记录了核心标签的前几种,现在来接着记录. 七.<c:import>标签 使用<c:import>标签可以包含一个FTP服务器中不同的网页内容.语法格式: <c:i ...
- JSTL核心标签库——重定向标签、URL处理标签、网页导入标签
<c:redirect>重定向标签 相当于HttpServletResponse的sendRedirect()方法. <%@page contentType="text/h ...
- jsp: jstl标签库 uri标签
与 URL 相关的标签主要是用来将其他文件包含进来,或者提供页面之间的重定位以及 URL 地址的生成.参数的输出等等.一般包括如下几个标签<c:import>标签:与传统 JSP 页面中的 ...
- java 标签库(核心,xml,sql ,国际化,函数)
java标签库分分为上述几种,一般经常使用的是核心和函数,接下来会分别讲解这几种,和常见的用法. 一般标签库会和el表达式一起使用,所以在学习标签库前最后也学习下el表达式的使用. 导入后展开 可以从 ...
- jstl标准标签库 常用标签
JSTL(JSP Standard Tag Library)标准标签库: 1, 核心标签(最常用, 最重要的) 表达式控制标签 out 输出常量 value---直接赋值 输出变量 default-- ...
- 菜鸟学Java(三)——JSTL标签之核心标签
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断.数据管理格式化.XML 操作以及数 ...
随机推荐
- 解决Navicat Premium 12 连接oracle数据库出现ORA-28547的问题
1. 出现的问题... 下午工作时想连接Oracle数据库,使用的是Navicat Premium 12 . 数据库地址.用户名.密码.端口号都没有问题,但出现了ORA-28547:connectio ...
- Duilib初级控件扩展一例: 具有鼠标滚动消息的OptionUI
转载:http://www.cnblogs.com/memset/p/Duilib_MouseWheelOptionUI_Deprecated.html
- Thinking in React 观后感
原文地址:Thinking in React 今天在翻阅 React 文档,看到一篇名为「Thinking in React」的文章觉得写的很好.文章介绍了如何使用 React 构建一个应用,并不是手 ...
- Git基础 —— Github 的使用
Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 Github 的利用 Gith ...
- 打开vi后提示The ycmd server SHUT DOWN (restart with :YcmRestartServer)该如何处理
答:进入YouCompleteMe的安装目录安装一些必要的依赖 比如:笔者将YouCompleteMe安装到了~/.vim/bundle目录下,那么执行以下操作: cd ~/.vim/bundle/Y ...
- 2018 Machine Learning
2018/8/13 线性模型(西瓜书P53~P73) Optimizer https://blog.csdn.net/u012151283/article/details/78154917 2018/ ...
- Unity3D学习笔记(十二):2D模式和异步资源加载
2D模式和3D模式区别:背景纯色,摄像机2D,没有深度轴 精灵图片设置 Normal map,法线贴图,更有立体感 Sprite (2D and UI),2D精灵贴图,有两种用途 1.当做UI贴图 2 ...
- 获取String类型汉字乱码,如何进行编码
本文为博主原创,未经允许不得转载: 在解析properties文件中的汉字时,在java代码中解析得到的是一个乱码字符,形如图下: 导致乱码原因:由于在jdk中,默认为gbk编码方式进行编码盒接收的, ...
- LA 4254 处理器(二分+贪心)
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...
- 【Python】【环境搭建】
[环境配置] Windows : http://blog.csdn.net/zhunianguo/article/details/53524792 [Pycharm] pyCharm最新2018激活码 ...