JSP中EL表达式与JSTL标签库

EL表达式格式:${}

u s e r . n a m e {user.name}或 {user[“name”]}效果相同.

JSP中的EL表达式:
在这里插入图片描述
使用案例:

 <div class="head_unused">
        <a id="unused" name="head_type" href="javascript:checkType(1)">
            <c:choose>
                <c:when test="${unusedCount eq 0}">
                    <font class="head_font active">未使用</font>
                </c:when>
                <c:when test="${unusedCount lt 100}">
                    <font class="head_font active">未使用(${unusedCount})</font>
                </c:when>
                <c:when test="${unusedCount ge 100}">
                    <font class="head_font active">未使用(99+)</font>
                </c:when>
            </c:choose>
        </a>
        <div class="head_line" id="unusedLine"></div>
    </div>

2种情况除外:
a.包含特殊字符

${user.first-name}此时应这样取值:${user["first-name"]}

b.通过变量进行动态取值

${user[param]}根据用户传入的param变量进行取值

EL变量的范围大小:

PageScope < RequestScope < SessionScope < ApplicationScope

el中的隐含对象:

1)pageContext 唯一一个即是jsp的隐含对象,又是el的隐含对象。jsp页面的上下文
        pageContext.servletContext
        pageContext.session
        pageContext.request
        pageContext.response
  2)param 
  3)paramValues
  4)cookie
  5)initParam
  6)pageScope
  7)requestScope
  8)sessionScope
  9)applicationScope

JSP中的九大内置对象:

  1)out     jsp中用于写到页面的输出流
  2)page        表示当前页面
  3)pageContext 当前页面的上下文
  4)request     jsp封装的请求信息
  5)response    jsp中封装的响应信息
  6)session     jsp中的会话Session
  7)application 当前应用
  8)config      配置信息
  9)exception   异常信息

JSTL标签的四大分类及JSTL函数,注意JSTL标签库和JSTL函数在使用他们之前都应该先将他们引入进来

核心标签库:
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

A.<c:out></c:out>
<c:out value="${person.name}"></c:out>

 1).直接输出常量value=“常量”
2).输出变量,变量不存在时有一个默认值value=“${name}” default="error"
3).通过escapeXml="false",value="&lt标签&gt"设置输出转义字符后的值

B.<c:set></c:set>
1)将一个day的变量存到scope中,
<c:set value=“today” var=“day” scope=“session”></c:set>或者
<c:set var=“age” scope=“application”>100</c:set>
2)存值到javabean中
<jsp:useBean id=“person” class=“com.ecjtu.modles.person”></jsp:useBean>
<c:set target="${person}" property=“name” value=“李四”></c:set>

C.<c:remove></c:remove> remove掉某个变量,不能remove bean中的某个属性,var属性是必选的
scope属性是可选的
1)<c:remove var=“today” scope=“session”></c:remove>
表示移除掉session中的变量名为today的变量

D.<c:catch var="error">
包含一些可能出错的标签,然后在外面就可以输出变量名为error的错误信息 </c:catch>

E.var变量保存比较的结果true或false
<c:if test="${score>=90}" var=“resutl” scope=“session”>
<c:out value=“您的成绩为优秀”></c:out>
</c:if>

F.choose,when,otherwise标签的用法:通常这三个标签放在一起使用
1.choose作为when和otherwise标签的父标签来使用
2.choose和when标签一起组合使用
用法一:3个标签同时使用
<c:choose>
<c:when test=“条件1”>
业务逻辑1
<c:when test=“条件2”>
业务逻辑2
<c:otherwise>
其它的业务逻辑
</c:choose>
用法二:两个标签同时使用
<c:choose>
<c:when test=“条件1”>
业务逻辑
</c:choose>

循环控制标签<c:forEach></c:forEach>一般用来遍历集合:
var 设定变量名用于存储从集合中取出来的元素(必须无默认值)
items指定要遍历的集合(必须无默认值)
begin,end用于指定遍历的起始位置和结束位置(有默认值)
step指定循环的步长(有默认值)
varStatus有index,count,first,last几个状态,分别表示元素的索引,第几个元素,
是否是第一个和最后一个元素,描述begin和end子集中的元素的状态
用法一:全部遍历
<:forEach var=“customer” items=“customers”>
操作var变量表示的值
</c:forEach>
用法二:部分遍历
<:forEach var=“customer” items=“customers” begin=“1” end=“5”>
操作var变量表示的值
</c:forEach>
用法三:部分遍历中指定步长
<:forEach var=“customer” items=“customers” begin=“1” end=“5” step=“3”>
操作var变量表示的值
</c:forEach>
用法四:部分遍历中指定步长并且输出元素的状态
<:forEach var=“customer” items=“customers” begin=“1” end=“5” varStatus=“com”>
操作var变量表示的值
<c:out value=“index属性:${com.index}”></c:out> </c:forEach>

forTokens标签的用法:
用于浏览字符串,并根据指定的字符将字符串截取,他同样有forEach中begin,end,step,varStatus这几个属性
items指定被迭代的字符串
delims指定使用的分隔符
var指定用来存放遍历到的成员
<c:forTokens items=“038-3823-323” delims="-" var=“num”>
<c:out value="${num}"></c:out>
</c:forTokens>

URL操作标签的用法:
import可以把其它的静态或动态文件包含到本JSP页面,导入网络上的绝对路径,可能会出现异常,一般放到cache标签中,也可以导入相对路径的文件,

属性:
url:被导入资源的URL路径
context:相同服务器下其他的web工程,必须以"/"开头
引入的是同一服务器下的其他web工程的页面,首先修改tomcat的发布路径,
再修改tomcat目录下的conf/context.xml文件中context标签中的属性:
crossContext=“true”
var:以String类型存入被导入的文件的内容可以存到session或其他范围中
Scope:变量的JSP范围
charEncoding:被导入文件的编码格式
varReader:以Reader类型存储被包含文件内容

redirect标签的用法,实现了请求的重定向

属性:url:指定重定向的页面地址
context:用于导入其他web工程中的页面
<c:redirect url="">
<c:param name=“username”>zhangsan</c:param>
<c:param name=“password”>123456</c:param>
</c:redirect>

url标签的用法:用于动态生成一个String类型的URL
可以同<c:param></c:param>共同使用,也可以使用html的标签实现超链接

属性:
value:表示url的路径
var:将url路径存储在var的变量中
scope:var变量的一个范围

格式化标签:
<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt” %>
日期的格式化:
<fmt:formatDate type=“both” dateStyle=“full” timeStyle=“full” value="${currentTime}" />

type: 可以是time,date或both。控制是否只生成时间,只生成日期,或者时间日期都生成。 dateStyle:
可以是short, medium, long 或 full(default)。控制打印日期使用的具体格式。 timeStyle:
可以是short, medium, long 或 full(default)。控制打印时间使用的具体格式。 value:
这是一个java.util.Date 类型的值,用于生成日期和时间。 pattern:日期的格式:yyyy-MM-dd HH:mm:ss

数字的格式化:
<fmt:formatNumber value=“0.1234” type=“percent” pattern="#0.00%"/>

符号 意义
0 一个数位
#一个数位,前导零和追尾零不显示
. 小数点分割位置
, 组分隔符的位置
减号 负数前缀
% 用100乘,并显示百分号
其他任何符号 在输出字符串中包括指定符号

SQL标签
<%@ taglib uri=“http://java.sun.com/jsp/jstl/sql” prefix=“sql” %>
XMl标签
<%@taglib prefix=“x” uri=“http://java.sun.com/jsp/jstl/xml” prefix=“x”%>
JSTL 函数
<%@ taglib prefix=“fn” uri=“http://java.sun.com/jsp/jstl/functions”%>
JSTL函数的使用:
contains:
<c:out value="${fn:contains(‘你好,hello!’,‘hello’)}"></c:out>
其他函数的用法类似:
containsIgnoreCase:
endWith(“1”,“2”)判断2是否在1的结尾
startWith(“1”,“2”)判断2是否在1的开头
fn:escapteXml(‘设计模式’);
fn:indexOf(‘1’,‘2’):2在1中第几个出现的
length():
replace():
split():
subString();
toLowerCase():
toUpperCase():
trim():

猜你喜欢

转载自blog.csdn.net/CSDN19951017/article/details/84425740