一 : EL简述
在jsp实际开发中,为了获取servlet域对象中存储的数据,经常需要书写很多java代码,这样做法会是jsp页面混乱.为此在JSP2.o规范中提供了EL表达式.
EL->Expression Language 目的是为了使jsp写起来更加的简单明了,它提供了jsp中简化表达式的方法,让jsp的代码更加简化.
二 : EL内置对象
| 分类 | 内置对象名称 | 描述 |
|---|---|---|
| 域对象 | pageScope | page域对象 |
| 域对象 | requestScope | request域对象 |
| 域对象 | sessionScope | session域对象 |
| 域对象 | applicationScope | application域对象 |
| 请求参数 | parm | 获得一个参数 |
| 请求参数 | parmValues | 获得一组参数 |
| 请求头 | header | 获得一个请求头 |
| 请求头 | headerValues | 获得一组请求头 |
| JSP上下文对象 | pageContext | WEB开发中的pageContext. |
| 全局初始化参数 | initParam | 获取全局初始化参数 |
| cookie | cookie | WEB开发中cookie |
其中pageScope,requestScope,sessionScope,applicationScope为获取jsp中域中的数据param,paramValues为获取参数,相当于
request.getParameter() ,
request.getParameterValues()header,headerValues为获取请求头信息,相当于request.getHeader(name)initParam 为获取全局初始化参数,相当于this.getServletContext().getInitParameter(name)cookie为WEB开发中cookie
相当于request.getCookies()---cookie.getName()---cookie.getValue()pageContext WEB开发中的pageContext,pageContext获得其他八大对象,${pageContext.request.contextPath}
三 : EL 从域中取出对象
EL 最重要的作用是获取四大域的数据,格式为 : ${EL表达式}
例如 :
EL表达式:${requestScope.name}① : EL获得PageContext域中的值 : ${pageScope.key};
② : EL获得request域中的值 : ${requestScope.key};
③ : EL获得session域中的值 : ${sessionScope.key};
④ : EL获得application域中的值 : ${applicationScope.key};
⑤ : EL域中获得某个值${key}; 依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找
四 : EL执行表达式
empty运算
<br>${user == null }
<br>${user != null }
<br>${empty user }
<br>${not empty user }三元运算
<br>${user == null ? true : false }算数运算符
${"1"+2 } 将字符串转换成数字,然后进行计算${a+2 } a将从域中获得数据,如果没有为0五 : JSTL简述
JSTL->JSP Standard Tag Library,JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑代码,JSTL出现的目的和EL一样,就是要替代jsp页面中的脚本代码
| 标签库 | 标准库URL | 前缀 |
|---|---|---|
| Core | http://java.sun.com/jsp/jstl/core | c |
| I18N | http://java.sun.com/jsp/jstl/fmt | fmt |
| SQL | http://java.sun.com/jsp/jstl/sql | sql |
| XML | http://java.sun.com/jsp/jstl/xml | x |
| Functions | http://java.sun.com/jsp/jstl/functions | fn |
六 : JSTL导入
①在Apache的网站下载JSTL的JAR包。http://archive.apache.org/dist/jakarta/taglibs/standard/binaries - > 下载JSTL的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar
②导入 工程 lib中
③导入核心标签库
注意 : prefix 的值可以随便填写,但是几乎通常为上表的前缀.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
七 : forEach与if标签使用
( 一 ) forEach标签使用
模拟for循环
<c:forEach begin="0" end="5" var="i">
${i }<br>
</c:forEach>获取遍历List
List<String> strList = new ArrayList<String>();
strList.add("百百");
strList.add("可可");
strList.add("思思");
request.setAttribute("strList", strList);
<c:forEach items="${strList}" var="str">
${str }<br>
</c:forEach>获取遍历List<User>
List<User> userList = new ArrayList<User>();
User user1 = new User();
user1.setUsername("雪雪");
user1.setPassword("123");
User user2 = new User();
user2.setUsername("美美");
user2.setPassword("456");
userList.add(user1);
userList.add(user2);
application.setAttribute("userList", userList);
<c:forEach items="${userList }" var="item">
${item.username}---${item.password }<br>
</c:forEach>获取遍历Map
Map<String,String> strMap = new HashMap<String,String>();
strMap.put("name", "花花");
strMap.put("add", "月球");
strMap.put("sex", "女");
session.setAttribute("strMap", strMap);
<c:forEach items="${strMap }" var="item">
${item.key }-----${item.value }<br>
</c:forEach>注意 :varStatus用于指定当前迭代状态信息的对象保存到page域中的名称var属性用于指当前迭代到的元素保存到page域中的名称
varStatus使用
count: 表示元素在集合中的序号,从1开始index: 表示当前元素在集合中的索引,从0开始first: 表示当前元素是否为集合的第一个元素last: 表示当前元素是否为集合的最后一个元素
<c:forEach begin="0" end="5" var="i" varStatus="status">
${i }<br>
${status.count }<br>
${status.index }<br>
${status.first }<br>
${status.last }<br> <hr>
</c:forEach>(二)if标签使用
<c:if test="${1==1 }">
我真很帅.
</c:if>
作者:TianTianBaby223
链接:https://www.jianshu.com/p/7edf26a81fb6
共同學習,寫下你的評論
評論加載中...
作者其他優質文章