EL表达式和JSTL标签库: 在JSP页面代替java代码,便于编写
一.EL表达式

作用: ${} 简化脚本表达式 <%= %>
j2ee1.4以前版本需指定<%@ page isELIgnored="false">
j2ee1.4以后版本默认支持EL表达式

1.EL内置对象

EL内置11个对象,不需定义可直接使用
pageScope        获取page域属性组成的Map
requestScope     获取reqeust域属性组成的Map
sessionScope     获取session域属性组成的Map
applicationScope 获取application域属性组成的MappageContext      获取jsp的9大隐式对象, 如 ${pageContext.request}
initParam        获取在web.xml配置的WEB应用参数param           请求参数Map<String,String>,   如: ${param.userName}
paramValues     请求参数Map<String,String[]>, 如: ${paramValues.userName[1]}
header          请求头Map<String,String[]>,   如: ${header["Accept-Language"] }
headerValues    请求头Map<String,String[]>cookie       获取cookie对象, 如 ${cookie.JSESSIONID.name} ${cookie.JSESSIONID.value}

2.EL语法

1.常量(直接输出到HTML)

    ${"字符串"}     ${123}  ${true}  

2.变量(在四大域搜寻)

${userName} 在四大域搜寻变量名的值,不存在则返回"" (相当于 <%= pageContext.findAttribute("userName") %>)${pageScope.userName}${requestScope.userName}${sessionScope.userName}${applicationScope.userName}搜寻数组/集合对象${myList[0]}搜寻map对象${myMap.key}  ${myMap["key-first.last"]}  key名是数字或特殊符(.-),必须用[]搜寻javaBean对象${user.getName()}  相当于 <%=user.getName()%>

3.简单运算
    算数运算

 ${1+"2"} 非数字都被转成数字,不能转就报错,空元素当作没参与关系运算 > gt  < lt  >= ge  <= le  != ne  == eq${a>2}逻辑运算 && and  || or  ! not${a>2 && b>2}三元表达式${name == null ? "张三" : name}域中指定的属性是否空 empty/not empty${not empty name}

3.调用java方法

EL表达式可调用java静态方法,步骤如下:
1)编写一个包含静态方法的类  
2)编写一个tld文件,配置静态方法

   <?xml version="1.0" encoding="UTF-8"?><taglib version="2.0"xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">         <tlib-version>1.0</tlib-version>        <uri>http://www.lioil.win/method</uri><short-name>my</short-name><function><name>elMethod</name><function-class>win.lioil.Method</function-class><function-signature>java.lang.String method(java.lang.String)</function-signature></function>             </taglib>       

3)在jsp中引入tld文件: <%@ taglib uri="http://www.lioil.win/method" prefix="my"%>      
4)在jsp中调用java静态方法: ${my:elMethod("x")}

* 对字符串进行操作,可以用EL函数库(JSTL标签库)

二.JSP原生标签(很少用)

sun公司推出的原生标签,属于jsp规范,不需引入第三方标签库<jsp:inclue>  替代request.getRequestDispatcher().include()
<jsp:forward> 替代request.getRequestDispatcher().forward()
<jsp:param>   在url后接请求参数在域中搜寻名为id的bean,没有就在该域中创建
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>将请求参数存到bean对象, property指定请求参数/beanName对象属性名,param指定请求参数
<jsp:setProperty name="bean" property="" param=""/>获取bean对象的属性值到输出流, property指定属性名
<jsp:getProperty name="bean" property="" />

三.JSTL标签库(常用)

全称Java Standard Tag Library,由JCP(Java Community Process)指定标准, 和EL配合取代JSP的Java代码,以便开发

1.下载JSTL标签库(Taglibs)

一般使用JSTL1.1以上版本,现在最新版是JSTL1.2.5
在Apache Tomcat官网下载JSTL标签库(Taglibs)
下载地址: http://tomcat.apache.org/download-taglibs.cgi

下载页面有4个jar包:

    Impl:   taglibs-standard-impl-1.2.5.jar    JSTL实现类库Spec:   taglibs-standard-spec-1.2.5.jar    JSTL标准接口EL:     taglibs-standard-jstlel-1.2.5.jar  JSTL1.0标签-EL相关Compat: taglibs-standard-compat-1.2.5.jar  兼容版本

从README得知:

 如果不使用JSTL1.0标签,可以忽略taglibs-standard-jstlel包,README没有介绍taglibs-standard-compat包,估计应该是兼容以前版本标签库,所以一般只需要 taglibs-standard-impl 和 taglibs-standard-spec 两个jar包Maven依赖配置如下:<dependency><groupId>org.apache.taglibs</groupId><artifactId>taglibs-standard-spec</artifactId><version>1.2.5</version></dependency><dependency><groupId>org.apache.taglibs</groupId><artifactId>taglibs-standard-impl</artifactId><version>1.2.5</version></dependency>

把上述两个jar包加到项目,或者复制到Tomcat/lib(所有项目都可以共用,一劳永逸)

2.核心标签库

core 核心标签库
    fmt  国际化标签
    sql  数据库标签(废弃)
    xml  XML标签(废弃)

在jsp中引入 core fmt 标签库:
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>

1.core标签库

输出默认转义<c:out value="<h1>header</h1>" default="value"/><c:out value="${name}"/>操作域变量      <c:set var="name" value="value" scope="page"/>Map对象   <c:set target="${myMap}" property="name1" value="value1" scope="request"/>Bean对象  <c:set target="${myBean}" property="name2" value="value2" scope="request"/>删除属性  <c:remove var="name" scope="request"/>捕获异常    <c:catch var="e"><%= 1/0 %></c:catch>   ${e.message }条件判断<c:if test="${i>1}" var="result" scope="page">大于1</c:if><c:if test="${i<1}" var="result" scope="page">小于1</c:if><c:choose><c:when test="${day == 1}">星期一</c:when><c:when test="${day == 2}">星期二</c:when><c:when test="${day == 3}">星期三</c:when><c:when test="${day == 4}">星期四</c:when><c:when test="${day == 5}">星期五</c:when><c:otherwise>休息日</c:otherwise></c:choose>

循环
    1.遍历集合List

 <table border="1"><tr><th>名称</th><th>是否是集合中第一个元素</th><th>是否是集合中最后一个元素</th><th>显示当前遍历的索引</th><th>显示当前遍历的计数</th></tr><c:forEach items="${myList}" var="it" varStatus="st" ><tr><td>${pageScope.it}</td><td>${pageScope.st.first}</td><td>${pageScope.st.last}</td><td>${pageScope.st.index}</td><td>${pageScope.st.count}</td></tr>       </c:forEach></table>

2.遍历Map

 <c:forEach items="${myMap}" var="entry" >${entry.key }:${entry.value }<br></c:forEach>    

3.循环计数(for i)

<c:forEach begin="1" end="100" step="1" var="num" >${num}</c:forEach>

分隔字符串

<c:forTokens items="sdfa,fsad,fds" delims="," var="result">${result}<br></c:forTokens>

在URL后加参数

   <c:param> 嵌套在<c:import>、<c:url>、<c:redirect>,为这些标签所用URL附加参数实现include功能<c:import url="/index.jsp" var="p" scope="page"></c:import>输出: ${p}URL重写<c:url value="/index.jsp" context="${pageContext.request.contextPath}" var="eurl" scope="page"></c:url>        <a href="${eurl}">xxx</a>请求重定向<c:redirect url="/index.jsp" context="${pageContext.request.contextPath}"></c:redirect>

2.fmt标签库

格式化日期       <fmt:formatDatevalue="<%=new Date()%>"  pattern="yyyy/MM/dd hh:mm:ss" var="date" scope="request" />${requestScope.date}格式化数字       <fmt:formatNumber  value="3.1415926" pattern="0000.00000000000" var="num1" scope="request" /><fmt:formatNumber  value="3.1415926" pattern="####.###########" var="num2" scope="request" />${requestScope.num1}<br>${requestScope.num2}<br>

spring mvc学习(37):JavaEE-JSP基础-EL表达式和JSTL标签库(Taglibs)相关推荐

  1. java标签库jstl-el表达式介绍使用配置手册_JAVA EE 实验报告EL表达式和jstl标签库的使用...

    昆明理工大学信息工程与自动化学院学生实验报告 ( 2013 -2014 学年第一学期) 课程名称:Java EE技术开课实验室:系机房444 2013 年 12月2 日年级.专业.班计科111 学号姓 ...

  2. 28. EL 表达式 以及 JSTL 标签库

    28. EL 表达式 以及 JSTL 标签库 1.EL 表达式 a)什么是 EL 表达式,EL 表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达 ...

  3. 【JSP教科书】JSP知识在线指南(记录知识JSP体系、EL表达式、JSTL标签库、JSP开发模型和分页查询)

    文章目录 @[toc] 一.JSP简介 1.1 什么是JSP? 1.2 JSP的特点 1.3 JSP为什么也是Servlet 1.4 tomact服务器中的资源分析 1.4.1 tomact服务器中的 ...

  4. EL表达式和JSTL标签库学习笔记

    先说一些数据库的知识,在进行表的操作时,若有一对多的关系,则在建外键时应选择多的一方.如user和group的对应关系,应在一个user属于多少个group,而不是一个group有多少用户,虽然这样也 ...

  5. EL表达式与Jstl标签库学习

    一.EL表达式 1)概念:Expression Language(EL表达式),jsp文件内置的一种能简化代码的表达式,可供jsp文件对流转数据的读取. 2)作用:让 jsp 书写起来更加的方便.简化 ...

  6. Java Web - EL表达式和JSTL标签库

    在使用servlet和jsp的过程中,两者之间的数据流转是十分常见的,jsp实际上也是一种servlet,也就是两个servlet之间的数据流转,我们根据不同的使用场景选择使用,请求转发(在reque ...

  7. Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

    来自:http://blog.csdn.net/love_you_99/article/details/8184797 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极 ...

  8. JAVA Web基础6-EL表达式与JSTL标签库

    一.EL表达式语言 1.EL表达式全称expression language,用于在JSP页面获取其内置对象的内容 语法:${...} 在jsp中page指令有一个属性是isELIgnored, 用来 ...

  9. EL表达式和JSTL标签库使用

    EL表达式 介绍: EL(Expression Language)  目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP ...

最新文章

  1. C#精髓【月儿原创】第三讲 C#泛型有什么好处
  2. 【转】【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途...
  3. 50个最有用的Matplotlib数据分析与可视化图
  4. django-装饰器实现PV统计
  5. l380废墨收集垫已到使用寿命_湖北土工网垫
  6. HDOJ HDU 1849 Rabbit and Grass ACM 1849 IN HDU
  7. React Native运行原理解析
  8. HTML:H5中新增表单标签<fieldset>
  9. 会不会导致内存泄漏_使用ThreadLocal不当可能会导致内存泄露
  10. 日撸 Java 三百行(71-80天,BP 神经网络)
  11. Navicat安装问题及解决办法
  12. jsonp跨域请求用法
  13. win7家庭版如何升级到专业版和旗舰版
  14. 理想的Datepicker
  15. 让你提前认识软件开发(39):软件研发之殇
  16. 踢球骨折在家day7
  17. Advanced PHP 高级PHP教程 Lynda课程中文字幕
  18. Android Studio 中文社区
  19. 应收应付重分类的配置和操作详解
  20. 无法打开因为apple无法检查其是否包含恶意软件_最全汇总:iPhone 无法充电或充电缓慢的原因及解决办法...

热门文章

  1. Java学习----方法的重载
  2. android shape的用法总结
  3. jsp servlet中的过滤器Filter配置总结(转)
  4. SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
  5. h5滚动隐藏滚动条_这 10 个值得开启的隐藏功能,让你的 Chrome 释放更多潜力
  6. pythonui教学视频_分享软件开发相关视频教程(Java、C++、Python、UI设计、HTML5、iOS)...
  7. 计算机网络是将地理知识,计算机网络的基础知识精选.ppt
  8. oracle集群监听启动,在RAC中lsnrctl和srvctl操作监听区别
  9. PyCharm设置自动换行
  10. PWA(Progressive Web App)入门系列:(二)相关准备