Java知识整理(二十一)之EL表达式

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.配置标签说明文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值