EL和JSTL的学习

来源:互联网 发布:亳州淘宝店转让网 编辑:程序博客网 时间:2024/05/28 01:36
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

0 0
原创粉丝点击