JSP页面 - 学习2

23 篇文章 0 订阅

1. JSTL - Java标准标签库

背景:

  1. JSP2.0的规范,重要特性之一
  2. 提供给Java-Web标准的通用标签库,支持EL获取数据
  3. 取代直接在JSP页面写Java脚本,提高程序的可读性

1.0 特别注意

  • 切记标签属性设置的var变量名,只能用EL表达式获取得了变量值,Java脚本获取不了

  • 因为Taglib标签:var、value属性的构建是使用PageContext内置对象,而PageContext内置对象只有EL表达式才有


例如下面源码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qoJHiyww-1572858246824)(en-resource://database/8347:1)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zp1qXQl0-1572858246842)(en-resource://database/8349:1)]

1.1 分类

uri
uri
能不用就不用
uri
uri
uri
JSTL标签库
核心标签库 -- core
http://java.sun.com/jsp/jstl/core
I18N标签库 -- fmt
http://java.sun.com/jsp/jstl/fmt
SQL标签库 -- sql
http://java.sun.com/jsp/jstl/sql
XML标签库 -- x
http://java.sun.com/jsp/jstl/xml
函数标签库 -- funcitons
http://java.sun.com/jsp/jstl/functions

1.1.1 核心标签库

Java-Web通用的标签 — 一般使用这个多

通常的引入方式: <%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

操作变量
流程控制
循环遍历
URL操作
核心标签
通用标签
out、set、remove、catch
条件标签
if、choose、when、otherwise
迭代标签
forEach、forTokens
URL标签
url、redirect
1.1.1.1 代码示例 – 通用标签
// 1. 输出变量 -- value等于null时,则输出default的值
<c:out value="输出的值" default="默认输出值"></c:out>

<% Integer a = 5; %>
<c:out value="<%= a %>" default="不输出任何东西"> </c:out>

---------------------------------------------------------------------------

// 2. 添加、修改四大作用域的属性:page、request、session、application
<c:set var="属性名" value="属性值" scope="作用域"><c:set>

<c:set var="user" value="小明" scope="session"></c:set>
<%= session.getAttribute("user") %>

------------------------------------------------------------------------------

// 3. 删除作用域的属性
<c:remove var="属性名"  scope="作用域范围"></c:remove>

<c:remove var="user" scope="session">

------------------------------------------------------------------------------

// 4. 捕获该标签内的子元素异常,但不处理异常
<c:catch var="捕获异常的变量名">
    脚本
</c:catch>

<c:catch var="a">
    <% int a = 5/0 %>
</c:catch>
<c:if test="${a != null}">
    <p>捕获到异常啦
</c:if>

1.1.1.2 代码示例 – 条件标签
// 1. 条件判断
<c:if test="条件判断"></c:if>

<c:if test="true">
    <p>这是真哦!</p>
</c:if>

------------------------------------------------------------------------------

// 2. 多条件判断选择、分支选择 -- choose、 otherwise 、when三标签一起用
// 其实就是  if - else if - else if - else语句
<c:choose>
    <c:when test="判断语句"> 语句 </c:when>
    <c:when test="判断语句"> 语句 </c:when>
    <c:when test="判断语句"> 语句 </c:when>
    <c: otherwise> 语句 </c:otherwise>
</c:choose>

<% Integer a = 5; %>
<c:choose>
    <c:when test="<%= a>5 %>"> 大于5 </c:when>
    <c:when test="<%= a>4 %>"> 大于4 </c:when>
    <c:otherwise> 小于等于4 </c:otherwise>
</c:choose>

1.1.1.3 代码示例 – 循环迭代标签
迭代标签属性
var:当前迭代到的元素
items:数组、集合对象
varStatus:当前迭代到的元素状态信息
index:该元素的索引值
count:已遍历的元素个数
first、last:是否一个第一个、最后一个元素
begin:遍历的开始索引
end:遍历的结束索引
step:每次遍历索引的增量
// 1. 遍历 
<c:forEach var="元素对象" items="<%= 容器对象 %>" >
    循环体内语句
</c:forEach>

<% Integer a = {1, 2, 3, 4}; %>
<c:forEach items="<%=a%>" var="number">
    ${numebr}
    你好啊,小老弟<br>
</c:forEach>

------------------------------------------------------------------------------

// 2. 字符串按照分隔符进行遍历
<c:forTokens items="字符串" delims="分隔符" var="当前迭代对象的变量名">
    循环遍历体
</c:forTokens>

<%  String a = "a|b|c|d|e" 
<c:forTokens var="str" items="<%= a %>" delims="|"
    <p> ${ str } </p>
<c:forTokens>

1.1.1.4 代码示例 – URL标签
<c:url value="url地址" var="变量名"></c:url>
<c:redirect url="重定向的地址"></c:redirect>


<c:url value="Test.jsp" var="test"></c:url>
<a href="${test}"> 跳转新的页面 </a>

<c:redirect url="${test}"></c:redirect>

1.1.2 I18N标签库

I18N = internationalized( 国际化的 ) — 刚好18个英文字母

已经封装了java.util.*、java.text.* 这两个函数包

作用:JSP页面的本地显示、设置时区、本地敏感数据按本地格式设置等等

formatDate-日期格式化标签属性
value:需格式化的日期
var:格式化后字符的变量名
scope:格式化结果保存的范围
pattern:自定义日期、时间输出格式
type:输出部分
both、time、date
timeStyle:时间部分输出格式
default、short、medium、long、full
dateStyle:日期部分输出格式
timezone:当前采用的时区

代码示例 – formatDate
//  设置地点、跟格式化代码输出

<fmt:setLocale value="zh_CN"/>     
<fmt:formatDate value="<%= new Date() %>" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="<%= new Date() %>" pattern="yyyy-MM-dd"/>

1.1.3 SQL标签库

现实项目中很少在JSP页面进行操纵数据库,JSP页面只负责显示,不负责逻辑、数据库访问的操作,所以该标签很少用到

作用:用于数据库的访问,其他对它的数据进行操纵

1.1.4 XML标签库

作用:对XML文档的数据进行操作

1.1.5 函数标签库

函数:由EL表达式自定义的一组函数

作用:对字符串的处理函数等等

1.2 自定义标签

知道: Struts2、SpringMVC、JSF等都提供了丰富的自定义标签,


  自定义步骤

开发自定义标签处理类
建议tld类型的文件、可包含多个标签
使用自定义标签库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值