JSP
JSP脚本
通过JSP脚本在JSP页面上编写Java代码
类型 | 翻译成Servlet对应的部分 | 注意 |
---|---|---|
<%…%>:Java程序片段 | 翻译成Service()方法里面的内容, 局部的 | |
<%=…%>:输出表达式 | 翻译成Service()方法里面的内容,相当于调用out.print() | 输出表达式不能以;结尾 |
<%!..%>:声明成员变量 | 翻译成Servlet类里面的内容 |
JSP注释
注释类型 | HTML源码中(浏览器查看) | 翻译的Servlet代码中 |
---|---|---|
HTML注释 | 存在 | 存在 |
JAVA注释 //; /* */ | 不存在 | 存在 |
JSP注释; <%–注释内容–%> | 不存在 | 不存在 |
EL表达式
语法
${el表达式}
EL获取数据
获取简单数据类型数据
${requestScope|sessionScope|applicationScope.属性名};
${属性名}
- 若找不到返回""
- application指的是ServletContext
- 属性名就是存在域对象里面的key
- 从最小的往最大的找,request–>session—>application
获取数组
${key[下标]}
key就是域对象里面存的key
获取list
${list属性名[index]}
${list属性名.get(index)}
list属性名就是存入域对象里面的key
获取Map
${map属性名.键}
${map属性名.get("键")
map属性名就是存入域对象里面的key
获取bean
${key.javabean属性}
依赖getxxx()方法
注意:
若属性名中出现了".""+""-"等特殊的符号的时候,快捷获取的方式不好使,必须使用以下方式:
${xxxScope["属性名"]}
EL执行运算
运算 | 运算符 | 说明 |
---|---|---|
算数运算 | +,-,*,/ | +不能拼接字符串. |
逻辑运算 | < >= <= != == | |
关系运算 | && | |
非空判断[重点] | empty, not empty | ${empyt 属性名} |
empty
- 作用
判断对象是否为null
判断一个集合长度是否为0
判断一个字符串是否为"" - 注意事项
如果是集合, 满足 这个集合不为null并且集合长度不为0, 那么才不是empty
JSTL标签库
- 导jar包
jstl.jar
standard.jar - 在页面上导入核心标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
if标签
<c:if test="el表达式${..}" [var="给之前的表达式的结果起个名字"] [scope="将结果保存在那个域中 默认page"]>
...
</c:if>
简单使用:
<c:if test="el表达式(返回boolean)" > </c:if>
choose标签
<c:choose>
<c:when test="${a == 'java' }">
...
</c:when>
...
<c:otherwise>
其它
</c:otherwise>
</c:choose>
foreach标签
简单使用:
<c:foreach begin="" end="" var="" step="">
//使用EL取值
</c:foreach>
复杂使用:
<c:foreach items="el取出域里面集合" var="" varStatus="遍历状态" >
...
</c:foreach>
foreach标签的属性
- var : 每次遍历的赋值
- items : 条目 一般写从域里面取出集合
指向一个字符串,该字符串引用一个对象 map.put(“vs”,一个对象);
这个对象记录着当前遍历的元素的一些信息:- index : 返回索引 从0开始
- count : 返回计数 从1开始
- last : 是否是最后一个元素
- first : 是否是第一个元素
- varStatus : 当前迭代状态信息的对象
- begin : 初始化
- end : 结束条件
- step : 步长