0x00前言
EL和JSTL都是JSP的内容的拓展,都是开发的一些东西,稍微学习记录一下,避免以后忘记
0x01EL
0x1基本用法
概念:Expression language 表达式语言
作用:替换和简化JSP页面中的java代码编写
语法:\\({}
设置忽略EL语法
(1):在page中实现isELIgnored=\"true\"忽略当前所有页面的el表达式
(2):/\\){}忽略当前这个el表达式
0x2使用的方法
1.运算:基础的+-*/(加减乘(div)除)都可以实现
还有基础的逻辑运算&&(and )||(or)
比较运算符 <,>,>=,<=,==,!=
空运算符:empty\\({empty list}判断字符串、集合、数组、是否为null和长度为0
2.获取值
语法:\\){域对象.键名}
语法2:${键名}从最小的域中去找对于的键值,直到找到为止
域对象:参考前一篇文章中的内置对象中的前4个:pageContext,request,session,application(ServletContext)
pageScope---->pageContext
requestScope--->request
sessionScope--->session
applicationScope--->application(ServletContext)
使用方法:
可以通过把对象存入后直接通过属性的方法获得属性(私有的要设置get和set方法)
也可以通过对象调取方法
<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setAttribute(\"name\",\"zhangsan\" );
session.setAttribute(\"name\",\"wangwu\");
%>
${requestScope.name}<br>
${sessionScope.name}
</body>
<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
ELcontent.User user = new ELcontent.User();
user.setName(\"zhangsan\");
user.setAge(12);
user.setBirthday(new Date());
request.setAttribute(\"zhangsan\",user);
%>
${requestScope.zhangsan.name}
${requestScope.zhangsan.getbitStr()}
</body>
</html>
3.获取list
获取对象、List集合、Map集合的值
1. 对象:${域名称.键名.属性名}
本质上会去调用对象的getter方法
2. List集合:${域名称.键名[索引]}
3. Map集合:
${域名称.键名.key名称}
${域名称.键名[\"key名称\"]}
0x02JSTL
0x1基础用法
1.概念:JavaServer Pages tag LiBRARY JSP标准标签库
由Apache组织提供的开源的免费的jsp标签
2.作用简化和替换JSP上面的java代码
3.使用步骤
(1)导入相关jar包
(2)引入标签库<%@taglib%>
4常用标签:if,choose,foreach
1.if 标签 ,test 必须属性,接受boolean表达式
2. choose:相当于java代码的switch语句
1. 使用choose标签声明 相当于switch声明
2. 使用when标签做判断 相当于case
3. 使用otherwise标签做其他情况的声明 相当于default
3. foreach:相当于java代码的for语句
中间遇到一个方法:一直报错期间发现了一个问题:attribute[test]不接受任何表达式
这是因为版本不兼容的问题
web.xml中版本号不兼容产生的问题;
解决方法:
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core” %>改为
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core_rt” %>
看一下demo和基础用法,
<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>
<%@taglib prefix=\"c\" uri=\"http://java.sun.com/jstl/core_rt\" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setAttribute(\"number\",5);
%>
<c:if test=\"true\"><h1>我是真</h1></c:if>
<c:if test=\"${number % 2 !=0}\">
${number}为基数
</c:if>
<c:choose>
<c:when test=\"${number==1}\">星期一</c:when>
<c:when test=\"${number==2}\">星期二</c:when>
<c:when test=\"${number==3}\">星期三</c:when>
<c:when test=\"${number==4}\">星期四</c:when>
<c:when test=\"${number==5}\">星期五</c:when>
</c:choose>
<c:forEach begin=\"1\" end=\"10\" var=\"i\" step=\"1\" varStatus=\"s\">
<h3>begin 开始值</h3>
<h3>end 结束值</h3>
<h3>var 临时变量</h3>
<h3>step 步长</h3>
<h3>varStatus:
index:元素的索引
count=循环的次数从1开始
</h3>
${i}<br>${s.count}
</c:forEach>
</body>
</html>
0x03总结
本篇学习文章还是比较短,内容比较少主要要记住的是后面EL和JSTL的连用达到简化JSP中java代码,让后面更好操作
来源:https://www.cnblogs.com/0x3e-time/p/16303714.html
本站部分图文来源于网络,如有侵权请联系删除。