JSP-常⽤的标签(JSTL+EL)
⽂章⽬录
⼀、含义
1.1 JSTL含义
JSP常⽤标签:简称JSTL(JavaServer Pages Standard Tag Library )。JSTL是Java中的⼀个定制标记库集。是⼀个JSP标签集合。定制标记库集:不⽤⾃⼰编写,直接使⽤。
作⽤:
(1)实现JSP页⾯中的代码复⽤。
代码复⽤原理:基于标签库原理,重复率较⾼的代码块⽀持复⽤,提⾼效率。
(2)书写JSP页⾯时可读性更强。
原因:长得很像XML,⽅便前端查看和参与开发。
JSP代码的效果:
<%
String role = "";
Parameter("role") != null){
role = Parameter("role");
if("user".equals(role)){
%>
欢迎⽤户!
<%
}
if("admin".equals(role)){
%>
欢迎管理员!
<%
}
}
%>
JSTL标签的效果:
<if test="${le == 'user'"var="adminchok">
<out value="欢迎⽤户!"></out>
</if>
<if test="${le == 'admin'"var="adminchok">
<out value="欢迎管理员!"></out>
</if>
1.2 JSTL环境搭建
第⼀步:确定服务器的版本。
原因:JSTL标签和Servlet及JSP页⾯有着⽐较严格的版本对应关系。版本不正确,容易抛出异常。
Tomcat7.0(JSTL1.1.2)
第⼆步:下载对应的jakarta-taglibs-standard-1.1.2。解压。
第三步:到\jakarta-taglibs-standard-1.1.2\lib\jstl.jar和\jakarta-taglibs-standard-1.1.2\lib\standard.jar两个jar包,并复制。第六步:粘贴到项⽬名\WebContent\WEB-INF\lib中。在点击右键—BuildPath—a…。
1.3 四⼤类标签
(2)格式化标签
(3)SQL标签
(4)XML标签
1.4 EL表达式
1.4.1 含义
EL:Expression Language。
EL表达式访问作⽤域的顺序是从⼩到⼤的:jstl常用标签有哪些
pageScope→requestScope→sessionScope→applicationScope
1.4.2 作⽤
解决JSTL标签中属性“value = 变量”的问题。常与JSTL标签配合使⽤,使得JSP页⾯更直观、写法更简单。
1.4.3 语法
${表达式}
普通写法:
<%=Value("name") %>
(JSTL + EL表达式)写法:
<out value="${sessionScope.name}"/>
1.4.4 “.”与“[]”运算符
(1)通常情况下,在EL表达式中,⼆者可通⽤。
${user.sex} <=> ${user["sex"]}
(2)集合元素定位。使⽤[]
${booklist[0].price}
(3)包含特殊字符。使⽤[]。
${user["frist_nme"]}
(4)通过变量动态取值。使⽤[]。
${user[param]} <=> ${user.name} or ${user.sex}..........
1.4.5 EL变量
JSP内置对象EL名称
page pageScope
request requestScope
session sessionScope
application applicationScope 限定搜索范围时:
⽤户名:${sessionScope.username}
从⼩到⼤查(page →request→session →application)。
⽤户名:${username}
⽤户名:<out value="${username}"></out>
1.4.6 EL⾃动类型转换
问题:获取⽂本框输⼊的数字。
普通⽅法:
<%
String str = Parameter("id");
int id1 = Integer.parseInt(str);
id1 = id1 + 1;
%>
EL表达式⽅法:
<out value="${param.id + 1}"/>
1.4.7 EL隐式对象
JSP内置对象EL名称
pageContext PageConext实例对象。对应于当前页⾯的处理。
pageScope页⾯作⽤域(Map类)
requestScope请求作⽤域(Map类)
sessionScope会话作⽤域(Map类)
applicationScope应⽤程序作⽤域(Map类)param请求参数的主要值(Map类)paramValues请求参数的所有值作为String数组存储(Map类)Header请求头的主要值(Map类)headerValues请求头的所有值(Map类)cookie请求的cookie值(Map类)
initParam Web应⽤程序初始化参数(Map类)1.4.8 EL运算符
类别运算符
算术运算符+、-、*、/(或div)、%(或mod)。
关系运算符==(eq)、!=(ne)、<(lt)、>(gt)、<=(le)、>=(ge)。
逻辑运算符&&(and)、||(or)、!(not)。
验证运算符empty。
<%
String username = "张三";
request.setAttribute("username",username);
%>
<out value="${empty.username}"><out>
<!-- 结果:false。-->
<!-- 为""或null时,结果才为true。-->
<!-- 使⽤转义字符时,escapeXml = "false" -->
<out value="⼩于号:<。⼤于号:>"escapeXml="false"/>
⼆、核⼼标签
标签含义
<c:out>⽤于在JSP中显⽰数据,就像<%= … >
<c:set>⽤于保存数据。
<c:remove>⽤于删除数据
<c:catch>⽤来处理产⽣错误的异常状况,并且将错误信息储存起来<c:if>与我们在⼀般程序中⽤的if⼀样
<c:choose>本⾝只当做<c:when>和<c:otherwise>的⽗标签
<c:when><c:choose>的⼦标签,⽤来判断条件是否成⽴<c:otherwise><c:choose>的⼦标签,接在<c:when>标签后,当<c:when>标签判断为false时被执⾏<c:import>检索⼀个绝对或相对 URL,然后将其内容暴露给页⾯
<c:forEach>遍历集合
<c:forTokens>字符串截取
<c:param>⽤来给包含或重定向的页⾯传递参数
<c:redirect>重定向⾄⼀个新的URL.
<c:url>使⽤可选的查询参数来创造⼀个URL
<%@ taglib prefix="c" uri="java.sun/jsp/jstl/core" %>
2.1 set标签
2.1.1 存值到scope(四种作⽤域对象)中。
语法1:
<set var="varName"scope="scopeName">var_value</set>
2.1.2 存值到JavaBean中。
<useBean id="objectName"class="packageName.className"/>
<set target="${objectName}"property="objectAttribute"value="objectAattributeValue"/>
2.2 remove标签
<remove var="waitDeletVarName"/>
2.3 catch标签
<catch var="errorName"/>
<set target="aa"property="bb">此对象未创建,会出错!</set>
</catch>
<!-- 查看出错信息 -->
<out value="${errorName}"/>
2.4 if标签
<form action="firstDemo.jsp"method="post">
<input type="text"name="score"value="${param.score}"/>
<input type="submit"/>
</form>
<if test="${param.score>=90}"var="result"scope="page"/>
<out value="优秀"/>
</if>
<out value="${sult}"/>
三、格式化标签
标签含义
fmt:formatNumber使⽤指定的格式或精度格式化数字
fmt:parseNumber解析⼀个代表着数字,货币或百分⽐的字符串
fmt:formatDate使⽤指定的风格或模式格式化⽇期和时间
fmt:parseDate解析⼀个代表着⽇期或时间的字符串
fmt:bundle绑定资源
fmt:setLocale指定地区
fmt:setBundle绑定资源
fmt:timeZone指定时区
fmt:setTimeZone指定时区
fmt:message显⽰资源配置⽂件信息
fmt:requestEncoding设置request的字符编码
<%@ taglib prefix="fmt"  uri="java.sun/jsp/jstl/fmt" %>
四、SQL标签
标签含义
sql:setDataSource指定数据源
sql:query运⾏SQL查询语句
sql:update运⾏SQL更新语句
sql:param将SQL语句中的参数设为指定值
sql:dateParam将SQL语句中的⽇期参数设为指定的java.util.Date 对象值
sql:transaction在共享数据库连接中提供嵌套的数据库⾏为元素,将所有语句以⼀个事务的形式来运⾏<%@ taglib prefix="sql" uri="java.sun/jsp/jstl/sql" %>
五、XML标签

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。