EL和JSTL的学习

EL即Expression Language(表达式语言)
EL的语法:${  EL exprission }
${  bean.name } 或  ${  bean['name'] }
说白了,EL是用来显示数据的,功能跟<%=表达式%> 一样,EL是不需要引入什么东西的
EL运算符:
类别  运算符
算术运算符  +、-、*、/(或 div)和 %(或 mod)
关系运算符  ==(或eq)、!=(或ne)、<(或lt)、>(或gt)、<=(或le)    和  >=(或ge)
逻辑运算符  &&(或 and)、||(或or)和 !(或 not)
验证运算符  empty
验证运算符(empty):对于验证数据特别有用。empty 运算符采用单个表达式作为其变量(也即,${empty input}),并返回一个布尔值,该布尔值表示对表达式求值的结果是不是“空”值。求值结果为 null 的表达式被认为是空,即无元素的集合或数组。如果参数是对长度为零的 String 求值所得的结果,则 empty 运算符也将返回 true。 JSTL(JavaServerPages Standard Tag Library)JSP标准标签库 JSTL标准标签库包括核心标签库和SQL标签库,核心标签库常用的是if和forEach 说白了JSTL常实现网页逻辑判断和迭代显示的,需要引入 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 只要JSTL和EL结合,就基本可以让页面再无<% %> jsp代码了。
 

为什么要用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一起使用

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>http://java.sun.com/jsp/jstl/core</taglib-uri>       <taglib-location>/WEB-INF/c.tld</taglib-location>   </taglib>     </jsp-config> 在jsp文件中添加 <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>或<%@ 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的其它标签 输出转换成的URL: <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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值