Java知识整理(二十一)之EL表达式
2015-09-19 10:31
225 查看
EL表达式:简单的计算规则,用于给JSP标签属性赋值,也可以直接用来输出(JSP中嵌套Java代码不利于维护)
作用:
访问Bean属性(pageContext,request,session,application):${对象名.属性名}
${对象名["属性名"]} ${user.array[1]}:user中数组array第2个元素
request.setAttribute("userAge","age");---> ${user[userAge]} 相当于 ${user["age"]}
取值时绑定名写错(找不到返回null)或没有赋值(找不到返回null),实际上输出空白(属性名不能写错,否则报错)
${user.name} 相当于 <% User user = (User)request.getAttribute("user"); out.print(user.getName()); %>
指定查找范围:如在session中查找:${sessionScope.user.name} 要查找的Bean属性加Scope
输出简单运算结果:"+","-","*","/","%";"+"号只能求和不能连接字符串;"&&","||","!",">",">=","<","<=","==","!=",
empty:${empty null}返回true;空字符串,空集合,值为null,找不到对应的值;返回结果true;
获取请求参数:${param.username}等价于request.getParameter("username");${paramValues.city}等价于request.getParameterValues("city");
JSTL(JSP Standard Tag Library):JSP标准标签库
使用JSTL:
1.将对应jar包放到WEB-INF/lib目录下
2.使用taglib指令导入要使用的JSP标签<% @taglib uri="http://java.sun.com/jsp/jst1/core" prefix="c" %> uri:JSP标签的命名空间 prefix:命名空间的前缀
if标签:<c:if test="${emp.gender}=='m'" var="rs" scope="request">男</c:if>
//rs为记录test结果的临时变量
当test属性值为true时,执行标签体的内容.test属性可以使用EL表达式
var属性:指定一个绑定名称;scope属性:指定绑定的范围(page,request,session,application);var和scope要配合使用
choose标签:<c:choose>
<c:when test=""></c:when>
......
<c:otherwise></c:otherwise>
</c:choose>
forEach标签<c:forEach var="emp" items="${emps}" varStatus="s">
${emp.name}
${emp.gender}
${s.count/index}
</c:forEach>
items属性:指定要便利的集合,一般使用EL表达式来复制
var属性:指定一个绑定的名称,容器每次从集合中取一个对象,然后绑定到pageContext对象上
varStatus属性:指定一个绑定名称,绑定值是一个由容器创建的对象,该对象封装了当前迭代的状态
index返回正在被迭代的对象下标(从0开始),coun返回第几次迭代(从1开始)
开发自定义标签:参考jstl-1.2.jar的META-INF的c.tld
1.编写Java类,继承SimpleTagSupport类
2.在doTag方法中添加处理逻辑
3.配置标签说明文件
作用:
访问Bean属性(pageContext,request,session,application):${对象名.属性名}
${对象名["属性名"]} ${user.array[1]}:user中数组array第2个元素
request.setAttribute("userAge","age");---> ${user[userAge]} 相当于 ${user["age"]}
取值时绑定名写错(找不到返回null)或没有赋值(找不到返回null),实际上输出空白(属性名不能写错,否则报错)
${user.name} 相当于 <% User user = (User)request.getAttribute("user"); out.print(user.getName()); %>
指定查找范围:如在session中查找:${sessionScope.user.name} 要查找的Bean属性加Scope
输出简单运算结果:"+","-","*","/","%";"+"号只能求和不能连接字符串;"&&","||","!",">",">=","<","<=","==","!=",
empty:${empty null}返回true;空字符串,空集合,值为null,找不到对应的值;返回结果true;
获取请求参数:${param.username}等价于request.getParameter("username");${paramValues.city}等价于request.getParameterValues("city");
JSTL(JSP Standard Tag Library):JSP标准标签库
使用JSTL:
1.将对应jar包放到WEB-INF/lib目录下
2.使用taglib指令导入要使用的JSP标签<% @taglib uri="http://java.sun.com/jsp/jst1/core" prefix="c" %> uri:JSP标签的命名空间 prefix:命名空间的前缀
if标签:<c:if test="${emp.gender}=='m'" var="rs" scope="request">男</c:if>
//rs为记录test结果的临时变量
当test属性值为true时,执行标签体的内容.test属性可以使用EL表达式
var属性:指定一个绑定名称;scope属性:指定绑定的范围(page,request,session,application);var和scope要配合使用
choose标签:<c:choose>
<c:when test=""></c:when>
......
<c:otherwise></c:otherwise>
</c:choose>
forEach标签<c:forEach var="emp" items="${emps}" varStatus="s">
${emp.name}
${emp.gender}
${s.count/index}
</c:forEach>
items属性:指定要便利的集合,一般使用EL表达式来复制
var属性:指定一个绑定的名称,容器每次从集合中取一个对象,然后绑定到pageContext对象上
varStatus属性:指定一个绑定名称,绑定值是一个由容器创建的对象,该对象封装了当前迭代的状态
index返回正在被迭代的对象下标(从0开始),coun返回第几次迭代(从1开始)
开发自定义标签:参考jstl-1.2.jar的META-INF的c.tld
1.编写Java类,继承SimpleTagSupport类
2.在doTag方法中添加处理逻辑
3.配置标签说明文件
相关文章推荐
- 解决jsp开发中不支持EL问题
- 在JSTL EL中处理java.util.Map,及嵌套List的情况
- java el简介及用法
- el表达式 写入bootstrap表格数据页面的实例代码
- 解析Tomcat 6、7在EL表达式解析时存在的一个Bug
- EL语法
- EL表达式格式化日期
- c:forEach 中vaStatus的属性
- el 表达式函数
- JSP小数取整
- jsp 页面中El表达式失效处理
- EL表达式中获取list长度
- el基础
- JAVA JSP 页面s标签和EL表达式处理值问题
- 黑马程序员Android第55期——jsp/EL表达式/EL函数/自定义标签/JSTL标签库
- 黑马程序员Android第55期——JSP 实例一
- 黑马程序员Android第55期——JSP 实例二
- EL表达式
- EL 表达式判断
- jsp的el失效,或者不被解析---》解决办法