EL技术和JSTL技术
Posted xiongdaren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL技术和JSTL技术相关的知识,希望对你有一定的参考价值。
2018-05-12 23:16:35
EL技术
EL表达式
EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写。
EL从域中取出数据
jsp:<%=request.getAttribute(name)%>相当于
EL:${requestScope.name}
EL可以从四个域中获取数据:
EL获得pageContext域中的值:${pageScope.key};
EL获得request域中的值:${requestScope.key};
EL获得session域中的值:${sessionScope.key};
EL获得application域中的值:${applicationScope.key};
还可以这样的格式:${key} 依次从小到大的四个域中获取key,在某个域中获取后停止寻找
EL内置对象
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 可以获得jsp的另外八个内置对象
${pageContext.request.contextPath} 可以或得web应用名称,在写地址时可用,便于后期维护
EL执行表达式
${1+} 可以进行算术运算后输出
${empty user} 判断user对象是否为空,空则输出true,不为空则输出false
${user==null?true:false} user为空则输出true,不为空则输出false
JSTL技术
JSTL概括
JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。
jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标准标签库有5个子库:Core,I18N,SQL,XML,Functions
目前常使用核心库Core
JSTL核心库常用标签
导入核心库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:if test=””>标签:
test返回的是boolean条件
<c:forEach>标签:
<c:forEach begin="0" end="5" var="o">
${i}<br/>
</c:forEach>
相当于:for(int i=0;i<=5;i++){
System.out.println(i);
}
jstl的遍历
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ page import="domain.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% //模拟List<String> strList List<String> strList = new ArrayList<String>(); strList.add("a"); strList.add("b"); strList.add("c"); strList.add("d"); request.setAttribute("strList", strList); //遍历List<User>的值 List<User> userList = new ArrayList<User>(); User user1 = new User(); user1.setId(1); user1.setName("a"); user1.setPassword("a"); userList.add(user1); User user2 = new User(); user2.setId(2); user2.setName("b"); user2.setPassword("b"); userList.add(user2); application.setAttribute("userList", userList); //遍历Map<String,String>的值 Map<String,String> strMap = new HashMap<String,String>(); strMap.put("a", "a"); strMap.put("b", "b"); strMap.put("c", "c"); strMap.put("d", "d"); session.setAttribute("strMap", strMap); //遍历Map<String,User>的值 Map<String,User> userMap = new HashMap<String,User>(); userMap.put("a", user1); userMap.put("b", user2); request.setAttribute("userMap", userMap); %> <h1>取出strList的数据</h1> <c:forEach items="${strList }" var="str"> ${str }<br/> </c:forEach> <h1>取出userList的数据</h1> <c:forEach items="${userList}" var="user"> user的name:${user.name }------user的password:${user.password }<br/> </c:forEach> <h1>取出strMap的数据</h1> <c:forEach items="${strMap }" var="entry"> ${entry.key }====${entry.value }<br/> </c:forEach> <h1>取出userMap的数据</h1> <c:forEach items="${userMap }" var="entry"> ${entry.key }:${entry.value.name}--${entry.value.password }<br/> </c:forEach> </body> </html>
以上是关于EL技术和JSTL技术的主要内容,如果未能解决你的问题,请参考以下文章
Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习
Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习
Java全栈web网页技术:14.书城项目实战三:EL和JSTL练习