当前位置: 58彩票app下载 > 58彩票网络 > 正文

jsp中的JSTL与EL表达式用法及界别,EL表达式和JS

时间:2019-11-02 22:26来源:58彩票网络
EL表达式和JSTL,EL表明式JSTL EL相关概念 JSTL平日要同盟EL表明式一同使用,来促成在jsp中不出新java代码段。所以我们先来学习EL表明式 EL首要用来查找效用域中的数据,然后对它们实施简单

EL表达式和JSTL,EL表明式JSTL

EL相关概念
JSTL平日要同盟EL表明式一同使用,来促成在jsp中不出新java代码段。所以我们先来学习EL表明式

EL首要用来查找效用域中的数据,然后对它们实施简单操作;它不是编程语言,以至不是本子编辑撰写语言。平日与 JSTL 标识一齐效果,能用简单而又方便的标识来代表复杂的一举一动。

 

EL基本格式
EL表明式的格式:用英镑符号($)定界,内容包蕴在花括号({})中;
例如: ${loginInfoBean.suser}

别的,您能够将多个表明式与静态文本组合在协同以通过字符串并置来协会动态属性值;
例如:Hello {loginInfoBean.suser} ${loginInfoBean.spwd}

 

EL语法组成-标记符
EL表明式由标记符、存取器、文字和平运动算符组成。

标记符用来标记存款和储蓄在成效域中的数据对象。EL 有 11 个保留标记符,对应于 12个EL隐式对象。除了11隐式对象外,假定全体别的标志符都用来标志效用域的变量。

 

标识符
例:
${abc} 相当于<%=pageContext.findAttribute(“abc”)%>
${og_1} <%=pageContext.findAttribute(“og_1”)%>
 …等等;便是说{}内的标记符除了10个保留字之外都代表功用域中的数据对应的名.

${requestScope}中的requestScope是拾三个EL隐式对象之风姿浪漫,它不再代表成效域中数量,而是表示request效率域;

 

EL遮掩对象
pageContext  PageContext 实例对应于当前页面包车型大巴管理
pageScope  与页面效果域属性的名称和值相关联的Map类
requestScope 与央浼成效域属性的称号和值相关联的Map类
sessionScope 与对话效用域属性的名称和值相关联的Map类
applicationScope 与应用程序成效域属性的称号和值相关联的Map类
param  按名称存储央求参数的主要值的 Map 类
paramValues 将号召参数的享有值作为 String 数组存款和储蓄的 Map 类
Header  按名称存款和储蓄须求头首要值的 Map 类
headerValues 将诉求头的装有值作为 String 数组存款和储蓄的 Map 类
cookie  按名称存款和储蓄乞请附带的 cookie 的 Map 类
initParam  按名称存款和储蓄 Web 应用程序上下文开首化参数的Map类

 

EL存取器
存取器用来查找对象的性状或集合的成分。

存取器: 通过 “[]” 或 “.” 符号获取有关数据

例:
${userBean.suser}  或  ${userBean[“suser”]}
//获取输出bean中的suser属性值;
${mcType[“id”]} //获取map中key为id对应的值;

 

EL运算符
运算符允许对数码和文字举行重新组合以致比较。

EL运算符:
类别  运算符
算术运算符  +、-、*、/(或 div)和 %(或 mod)
论及运算符  ==(或eq)、!=(或ne)、<(或lt)、>(或gt)、<=(或le)    和  >=(或ge)
逻辑运算符  &&(或 and)、||(或or)和 !(或 not)
表达运算符  empty
证实运算符(empty):对于评释数据特别有用。empty 运算符接收单个表达式作为其变量(也即,${empty input}),并赶回二个布尔值,该布尔值表示对表明式求值的结果是或不是“空”值。求值结果为 null 的表明式被认为是空,即无成分的集聚或数组。假使参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将赶回 true。

 

EL文字
文字表示一定的值 — 数字、字符、字符串、布尔型或空值。

在 EL 表明式中,数字、字符串、布尔值和 null 都足以被钦赐为文字值。字符串能够用单引号或双引号定界。布尔值被钦定为 true 和 false

 

JSTL是什么
JSTL(JSP Standard Tag Library,JSP标准标签库)是八个不断康健的盛放源代码的JSP标签库,是由apache的jakarta小组来保障的。JSTL1.0 由多个定制标识库(core、format、xml 和 sql)和意气风发对通用标识库验证器组成。core 标识库提供了定制操作,通过节制了效能域的变量管理数据,以致实施页面内容的迭代和条件操作。它还提供了用来扭转和操作 UPAJEROL 的标记。format 标识库定义了用来格式化数据(尤其是数字和日期)的操作。它还援救使用当地化能源束实行JSP页面的国际化。xml 库满含部分标记,这一个标识用来操作通过XML表示的数码,而 sql 库定义了用来询问关周到据库的操作。 七个 JSTL 标识库验证器允许开采职员在其 JSP 应用程序中威迫行使编码标准。

借使要运用JSTL,则必需援用jstl.jar和 standard.jar八个包。

 

为啥要用JSTL
咱俩JSP用于开荒消息表现页特别方便;也得以嵌入java代码(scriptlet、表明式和证明)代码用来完成相关逻辑调控。看上边程序。但像这种类型做会带来如下难点:
jsp维护难度扩充;
出错提醒不刚烈,不轻巧调节和测验;
分工不明显;(即jsp开采者是丹青,也是技术员);
终极扩大程序的开辟耗费;
解决地点的难点得以采纳定制标志库,JSTL使JSP开拓者能够缩小对台本成分的需要,以致可以无需它们,进而幸免了相关的保卫安全资金财产。使分工更刚强。

<% if (session.getAttribute(“user”).equals(“member”)) { %>
    <p>Welcome, member!</p>
<% } else { %>
    <p>Welcome, guest!</p>
<% } %>
JSTL平日合营EL一同行使,由此先看看EL.

 

JSTL部署
在EE应用程序中布署JSTL有三种方式:
已存在的工程上配置
将jstl.jar和standard.jar三个包考到存活工程
    WebRoot / WEB-INF / lib 目录下
将相关的 .tld文件考到现存工程 WebRoot / WEB-INF 目录下; 

也可经过eclipse在已存在
工程上配备
新建筑工程程的时候平素配置

在JSP使用JSTL-core标签库
core在jsp中的使用:
在 web.xml 中添加
     <jsp-config>
  <taglib>
      <taglib-uri>;
      <taglib-location>/WEB-INF/c.tld</taglib-location>
  </taglib>
    </jsp-config>
在jsp文件中加多
<%@ taglib prefix=“c” uri=“ %>或<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
使用<c:out value=“HelloWorld” />

 

Core的操作效能域变量标签
获取输出效能域中变量.
<c:out >      属性: value [default] [escapeXml]
概念作用域中变量
<c:set >      属性: value var [scope]
去除效用域中变量
<c:remove >   属性: var [scope]

Core的规格决定标签
单分支条件
<c:if >  属性:test [var] [scope]
多分支条件
 <c:choose >  
   <c:when > 属性: test
   <c:otherwise >

 

Core的其余标签
输出调换来的U凯雷德L:
<c:url > 属性:value [context] [var] [scope]
和<jsp:include >相符用于包蕴其余页面包车型大巴剧情:
<c:import >属性:url [context] [charEncoding] [var] [scope]
重定向
<c:redirect >属性: url [context]
与<c:url><c:import><c:redirect>同盟使用,用于传参
<c:param >属性: name value

Core的大循环调控标签
福寿齐天简单循环
<c:forEach >  var='item' begin='5' end='10' step='2‘ varStatus=‘’
兑现迭代(遍历)
<c:forEach > items='' var='item‘ varStatus=‘’

质量varStatus和var相通设置二个功用域变量;只是varStatus功用域变量中存的是包括运行境况的目的;此目的蕴涵如下属性:
current  index  count  first  last  begin  end  step

 

总结循环
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <title>testjstl1</title>
</head>
<body>
 <c:forEach var="i" step="1" begin="1" end="100">
 ${i} <br>
 </c:forEach>
</body>
</html>

 

循环迭代
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>testjstl1</title>
</head>
<body>
<c:forEach var="mcBean" items="${mcList}" varStatus="mcStatus">
一时遍历索引:${mcStatus.index} ;  商品名:${mcBean.sname} ; .... <br>
</c:forEach>
</body>
</html>

 

在JSP使用JSTL-format标签库
format在jsp中的使用:
在 web.xml 中添加
     <jsp-config>
  <taglib>
      <taglib-uri>;
      <taglib-location>/WEB-INF/fmt.tld</taglib-location>
  </taglib>
    </jsp-config>
在jsp文件中增多
<%@ taglib prefix="fmt" uri="" %>
使用
<fmt:formatDate value=“” pattern=“yyyy-MM-dd” />

 

Format常用竹签
格式化输出日期:
<fmt:formatDate > value type var pattern
type取值:
short: 10/19/00 6:07 PM
medium: Oct 19, 2000 6:07:01 PM
long: October 19, 2000 6:07:01 PM MDT
full: Thursday, October 19, 2000 6:07:01 PM MDT
例: <fmt:formatDate value=“” pattern=“yyyy/MM/dd” />
格式化输出数字:
<fmt:formatNumber> value var pattern
例:<fmt:formatNumber value=“” pattern=“###.##” />

format实例
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>testjstl1</title>
</head>
<body>
<jsp:useBean id="curDate" class="java.util.Date" scope="page"/>
<fmt:formatDate value="${curDate}" pattern="yyyy-MM-dd HH:mm:ss"/><br>

<fmt:formatNumber value="10.32898432" pattern="#.##"/><br>
<% request.setAttribute("var1",3.1415926); %>
<fmt:formatNumber value="${var1}" pattern="#.##"/><br>
</body>
</html>

EL相关概念 JSTL通常要协作EL表明式一齐行使,来促成在jsp中不现身java代码段。所以大家先来学学EL表达式 EL首要...

jsp中的JSTL与EL表明式用法及界别,jspjstlel表明式

对于JSTL和EL之间的涉嫌,那么些主题素材对于初学JSP的朋友的话,估摸是个问题,上面来详细介绍一下JSTL和EL表达式他们中间的关系,以至JSTL和EL一些唇亡齿寒概念!

EL相关概念
JSTL日常要同盟EL表明式一同利用,来落到实处在jsp中不出新java代码段。所以我们先来上学EL说明式

EL首要用来查找成效域中的数据,然后对它们实行简单操作;它不是编制程序语言,甚至不是本子编辑撰写语言。常常与 JSTL 标志一齐效果,能用简单而又便利的号子来代表复杂的一举一动。

EL基本格式
EL表明式的格式:用港币符号($)定界,内容囊括在花括号({})中;
例如: ${loginInfoBean.suser}

别的,您可以将七个说明式与静态文本组合在一起以通过字符串并置来布局动态属性值;
例如:Hello {loginInfoBean.suser} ${loginInfoBean.spwd}

EL语法组成-标志符
EL表明式由标志符、存取器、文字和运算符组成。

标记符用来标志存款和储蓄在功用域中的数据对象。EL 有 11 个保留标志符,对应于 10个EL隐式对象。除了11隐式对象外,假定全体别的标记符都用来标志功用域的变量。

标识符
例:
${abc} 相当于<%=pageContext.findAttribute(“abc”)%>
${og_1} <%=pageContext.findAttribute(“og_1”)%>
…等等;就是说{}内的标记符除了拾二个保留字之外都意味着作用域中的数据对应的名.

${requestScope}中的requestScope是十个EL隐式对象之意气风发,它不再代表功效域中数据,而是意味着request成效域;

EL隐蔽对象
pageContext PageContext 实例对应于当前页面包车型大巴拍卖
pageScope 与页面效果域属性的称呼和值相关联的Map类
requestScope 与诉求功能域属性的名目和值相关联的Map类
sessionScope 与对话效率域属性的称谓和值相关联的Map类
applicationScope 与应用程序效用域属性的名号和值相关联的Map类
param 按名称存储央浼参数的主要值的 Map 类
paramValues 将呼吁参数的有所值作为 String 数组存款和储蓄的 Map 类
Header 按名称存款和储蓄须要头首要值的 Map 类
headerValues 将央求头的全部值作为 String 数组存储的 Map 类
cookie 按名称存款和储蓄央浼附带的 cookie 的 Map 类
initParam 按名称存款和储蓄 Web 应用程序上下文初步化参数的Map类

EL存取器
存取器用来寻觅对象的风味或集结的因素。

存取器: 通过 “[]” 或 “.” 符号获取有关数据

例:
${userBean.suser} 或 ${userBean[“suser”]}
//获取输出bean中的suser属性值;
${mcType[“id”]} //获取map中key为id对应的值;

EL运算符
运算符允许对数码和文字进行组合以致比较。

EL运算符:
类别 运算符
算术运算符 +、-、*、/(或 div)和 %(或 mod)
事关运算符 ==(或eq)、!=(或ne)、<(或lt)、>(或gt)、<=(或le) 和 >=(或ge)
逻辑运算符 &&(或 and)、||(或or)和 !(或 not)
表达运算符 empty
表明运算符(empty):对于申明数据特别有用。empty 运算符接纳单个表明式作为其变量(也即,${empty input}),并回到多个布尔值,该布尔值表示对表明式求值的结果是否“空”值。求值结果为 null 的表明式被以为是空,即无元素的聚合或数组。假如参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将回来 true。

EL文字
文字表示一定的值 — 数字、字符、字符串、布尔型或空值。

在 EL 表明式中,数字、字符串、布尔值和 null 都得以被钦点为文字值。字符串能够用单引号或双引号定界。布尔值被内定为 true 和 false

JSTL是什么
JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断康健的盛放源代码的JSP标签库,是由apache的jakarta小组来爱护的。JSTL1.0 由多少个定制标识库(core、format、xml 和 sql)和意气风发对通用标识库验证器组成。core 标识库提供了定制操作,通过限定了功能域的变量管理数据,以致实施页面内容的迭代和原则操作。它还提供了用来扭转和操作 UPRADOL 的符号。format 标志库定义了用来格式化数据(特别是数字和日期)的操作。它还援助使用本地化能源束实行JSP页面包车型大巴国际化。xml 库满含部分符号,这一个标志用来操作通过XML表示的多寡,而 sql 库定义了用来询问关全面据库的操作。 多个 JSTL 标识库验证器允许开拓人士在其 JSP 应用程序中强制行使编码规范。

风姿洒脱旦要使用JSTL,则必需援引jstl.jar和 standard.jar多个包。
何以要用JSTL
大家JSP用于开荒音信表现页特别常有利于;也足以嵌入java代码(scriptlet、表明式和注脚)代码用来落到实处相关逻辑调节。看上边程序。但那样做会推动如下难点:
jsp维护难度扩张;
一差二错提醒不分明,不轻巧调节和测量检验;
分工不引人瞩目;(即jsp开拓者是丹青,也是技术员);
末尾扩充程序的开拓成本;
缓慢解决地点的难点可以运用定制标识库,JSTL使JSP开荒者能够减去对台本元素的必要,以致能够无需它们,从而幸免了连带的维护资产。使分工更分明。

<% if (session.getAttribute(“user”).equals(“member”)) { %>
<p>Welcome, member!</p>
<% } else { %>
<p>Welcome, guest!</p>
<% } %>
JSTL平日协作EL一齐使用,由此先看看EL.

JSTL部署
在EE应用程序中布局JSTL有二种艺术:
已存在的工程上配备
将jstl.jar和standard.jar多个包考到存活工程
WebRoot / WEB-INF / lib 目录下
将相关的 .tld文件考到现成工程 WebRoot / WEB-INF 目录下;

也可经过eclipse在已存在
工程上配备
新建筑工程程的时候一贯配置
在JSP使用JSTL-core标签库
core在jsp中的使用:
在 web.xml 中添加
<jsp-config>
<taglib>
<taglib-uri>;
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
</jsp-config>
在jsp文件中加多
<%@ taglib prefix=“c” uri=“ %>或<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
使用<c:out value=“HelloWorld” />

Core的操作作用域变量标签
取得输出成效域中变量.
<c:out > 属性: value [default] [escapeXml]
概念功用域中变量
<c:set > 属性: value var [scope]
除去成效域中变量
<c:remove > 属性: var [scope]

Core的尺度决定标签
单分支条件
<c:if > 属性:test [var] [scope]
多分支条件
<c:choose >
<c:when > 属性: test
<c:otherwise >

Core的任何标签
出口调换到的UOdysseyL:
<c:url > 属性:value [context] [var] [scope]
和<jsp:include >相像用于饱含其余页面包车型地铁始末:
<c:import >属性:url [context] [charEncoding] [var] [scope]
重定向
<c:redirect >属性: url [context]
与<c:url><c:import><c:redirect>同盟使用,用于传参
<c:param >属性: name value

Core的大循环调节标签
达成轻巧循环
<c:forEach > var='item' begin='5' end='10' step='2‘ varStatus=‘’
贯彻迭代(遍历)
<c:forEach > items='' var='item‘ varStatus=‘’

属性varStatus和var相近设置贰个成效域变量;只是varStatus功能域变量中存的是包罗运维状态的对象;此目的包涵如下属性:
current index count first last begin end step

简言之循环
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>testjstl1</title>
</head>
<body>
<c:forEach var="i" step="1" begin="1" end="100">
${i} <br>
</c:forEach>
</body>
</html>

循环迭代
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>testjstl1</title>
</head>
<body>
<c:forEach var="mcBean" items="${mcList}" varStatus="mcStatus">
时下遍历索引:${mcStatus.index} ; 商品名:${mcBean.sname} ; .... <br>
</c:forEach>
</body>
</html>

在JSP使用JSTL-format标签库
format在jsp中的使用:
在 web.xml 中添加
<jsp-config>
<taglib>
<taglib-uri>;
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
</jsp-config>
在jsp文件中增多
<%@ taglib prefix="fmt" uri="" %>
使用
<fmt:formatDate value=“” pattern=“yyyy-MM-dd” />

Format常用竹签
格式化输出日期:
<fmt:formatDate > value type var pattern
type取值:
short: 10/19/00 6:07 PM
medium: Oct 19, 2000 6:07:01 PM
long: October 19, 2000 6:07:01 PM MDT
full: Thursday, October 19, 2000 6:07:01 PM MDT
例: <fmt:formatDate value=“” pattern=“yyyy/MM/dd” />
格式化输出数字:
<fmt:formatNumber> value var pattern
例:<fmt:formatNumber value=“” pattern=“###.##” />

format实例
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>testjstl1</title>
</head>
<body>
<jsp:useBean id="curDate" class="java.util.Date" scope="page"/>
<fmt:formatDate value="${curDate}" pattern="yyyy-MM-dd HH:mm:ss"/><br>

<fmt:formatNumber value="10.32898432" pattern="#.##"/><br>
<% request.setAttribute("var1",3.1415926); %>
<fmt:formatNumber value="${var1}" pattern="#.##"/><br>
</body>
</html>

到那边大家对JSTL和EL之间的关系有了迟早的认知,只要我们经常选拔那几个技巧相信能异常快的意识到那个工夫的利弊,比起死记硬背来讲,精通才是当真的领会了.

对于JSTL和EL之间的关联,这几个难题对于初学JSP的敌人来讲,揣测是个难题,上面来详细介绍一下...

编辑:58彩票网络 本文来源:jsp中的JSTL与EL表达式用法及界别,EL表达式和JS

关键词: