您的位置:首页 > 编程语言 > Java开发

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.配置标签说明文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  EL