大家好,又见面了,我是你们的朋友全栈君。
EL表达式
EL表达式的作用:EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据输出。因为EL表达式在输出数据的时候,要比jsp表达式脚本要简洁的多 格式 $(表达式)
代码语言:javascript复制<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body >
<%
request.setAttribute("key","值");
%>
<%=request.getAttribute("key")==null?"":request.getAttribute("key")%>
%{
key}
</body>
</html>
EL表达式主要是在jsp页面中输出数据,主要是输出域(request,session,application,pageContext)对象中的数据。 当四个域中都有相同的key的数据的时候,EL表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。
EL表达式可以输出Bean的普通属性,数组属性,List集合属性,map集合属性。
代码语言:javascript复制<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="com.atguigu.java.Person" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body >
<%
Person person = new Person();
%>
${
person.name}
${
person.Map}
${
person.list}
</body>
</html>
同样的EL表达式还支持关系运算,逻辑运算,算术运算,empty运算,点运算和中括号运算
EL表达式中十一个隐含对象
- pageContext pageContextImpl 可以获取jsp中的九大内置对象
- pageScope Map<String,Object> 它可以获取pageContext域中的数据
- requestScope Map<String,Object> 它可以获取Request域中的数据
- sessionScope Map<String,Object> 它可以获取Session域中的数据
- applicationScope Map<String,Object> 它可以获取ServletContext域中的数据,
- param Map<String,String>它可以获取请求参数的值
- paramValues Map<String,String[]> 它可以获取请求参数的值,获取多个值的时候使用
- header Map<String,String> 它可以获取请求头的信息
- header Map<String,String[]> 它可以获取请求头的信息
- initParam Map<String,String> 它可以获取在web,xml中配置的上下文参数
·EL获取4个特定域中的属性 pageScope,requestScope,sessionScope,applicationScope ${requestScope.key2}
pageContext对象常用于获取一下信息
- 协议
- 服务器ip
- 服务器端口
- 获取工程路径
- 获取请求方法
- 获取客户端ip地址
- 获取回话的id编号
<%@ page import="java.util.Map" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/1/16
Time: 12:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%=request.getScheme()%>
${
pageContext.request.scheme}<!--EL表达式不用谢get-->
</body>
</html>
JSTL标签
JSTL标签库是一个不断完善的JSP标签库。 EL表达式主要是为了替换jsp中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个jsp页面变得更加简洁。
语法 <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
核心标签 <c:out> 用于在JSP中显示数据,就像<%= … > <c:set> 用于保存数据 <c:remove> 用于删除数据 <c:catch> 用来处理产生错误的异常状况,并且将错误信息储存起来 <c:if> 与我们在一般程序中用的if一样 <c:choose> 本身只当做<c:when>和<c:otherwise>的父标签 <c:when> <c:choose>的子标签,用来判断条件是否成立 <c:otherwise> <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行 <c:import> 检索一个绝对或相对 URL,然后将其内容暴露给页面 <c:forEach> 基础迭代标签,接受多种集合类型 <c:forTokens> 根据指定的分隔符来分隔内容并迭代输出 <c:param> 用来给包含或重定向的页面传递参数 <c:redirect> 重定向至一个新的URL. <c:url> 使用可选的查询参数来创造一个URL 格式化标签 fmt:formatNumber 使用指定的格式或精度格式化数字 fmt:parseNumber 解析一个代表着数字,货币或百分比的字符串 fmt:formatDate 使用指定的风格或模式格式化日期和时间 fmt:parseDate 解析一个代表着日期或时间的字符串 fmt:bundle 绑定资源 fmt:setLocale 指定地区 fmt:setBundle 绑定资源 fmt:timeZone 指定时区 fmt:setTimeZone 指定时区 fmt:message 显示资源配置文件信息 fmt:requestEncoding 设置request的字符编码
SQL标签 sql:setDataSource 指定数据源 sql:query 运行SQL查询语句 sql:update 运行SQL更新语句 sql:param 将SQL语句中的参数设为指定值 sql:dateParam 将SQL语句中的日期参数设为指定的java.util.Date 对象值 sql:transaction 在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行 XML 标签 <x:out> 与<%= … >,类似,不过只用于XPath表达式 <x:parse> 解析 XML 数据 <x:set> 设置XPath表达式 <x:if> 判断XPath表达式,若为真,则执行本体中的内容,否则跳过本体 <x:forEach> 迭代XML文档中的节点 <x:choose> <x:when>和<x:otherwise>的父标签 <x:when> <x:choose>的子标签,用来进行条件判断 <x:otherwise> <x:choose>的子标签,当<x:when>判断为false时被执行 <x:transform> 将XSL转换应用在XML文档中 <x:param> 与<x:transform>共同使用,用于设置XSL样式表
JSTL函数 fn:contains() 测试输入的字符串是否包含指定的子串 fn:containsIgnoreCase() 测试输入的字符串是否包含指定的子串,大小写不敏感 fn:endsWith() 测试输入的字符串是否以指定的后缀结尾 fn:escapeXml() 跳过可以作为XML标记的字符 fn:indexOf() 返回指定字符串在输入字符串中出现的位置 fn:join() 将数组中的元素合成一个字符串然后输出 fn:length() 返回字符串长度 fn:replace() 将输入字符串中指定的位置替换为指定的字符串然后返回 fn:split() 将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回 fn:startsWith() 测试输入字符串是否以指定的前缀开始 fn:substring() 返回字符串的子集 fn:substringAfter() 返回字符串在指定子串之后的子集 fn:substringBefore() 返回字符串在指定子串之前的子集 fn:toLowerCase() 将字符串中的字符转为小写 fn:toUpperCase() 将字符串中的字符转为大写 fn:trim() 移除首尾的空白符
举例
代码语言:javascript复制<%@ page import="java.util.Map" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.atguigu.java.Person" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/1/16
Time: 12:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
ArrayList<Person> people = new ArrayList<>();
for(int i = 0;i < 10;i ){
people.add(new Person("1","username" i,"pass" i));
}
request.setAttribute("person",Person);
%>
<c:forEach begin="2" end="7" step="2" varStatus="status" items="${requestScope.stus}" var="stu">
<tr>
<td>${
stu.id}</td>
<td>${
stu.username}</td>
<td>${
stu.password}</td>
<td>${
status.first}</td>
</tr>
</c:forEach>
</body>
</html>
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168815.html原文链接:https://javaforall.cn