什么是El(Expression language)表达式?
在JSP开发中,为了获取servlet域对象的中存储的数据,为了简化java代码我们引入了E了表达式(jsp是html+java代码)。
语法: ${}
四个域操作:
pageScope requestScope sessionScopeapplicationScope
我们获取项目名称:
${pageContext.request.contextPath};
EL表达式应用:
案例分析:
项目中我们进行查询的时候返回来一个list集合,在Servlet中向界面传递了一个集合,那么界面如何接受?
对于返回集是list集合:
${list} [x,x,x,x] ${list[0]} 就是获取的第一个值
对于返回集是数组 ${strs} --输出是地址 ${strs[0]} --输出的是在索引0处的值
对于返回集是mp集合
map集合中存储的的是key=value的形式 ${map.key} 可以获取value
如果是一个实体(person) ${person.属性}
如果是一个实体pageBean<T> plist 想要访问里面的 list<T> list 那么要使用${plist.list}
我们在做项目的过程中,我们经常查询一个字段,然后返回一个集合,然后用实体beanlist接收
List<Category>list=caservice.findCategory();
request.setAttribute("plist",plist);
那么我们在jsp接收参数list的时候形式: ${plist}
我们想要获取实体Category中的字段cid那么我们需要: ${list.clid}
JSTL
对返回页面的list集合我们需要循环遍历,如果想要在页面中写一些条件语句或是遍历循环等需要使用JSTL
JSTL:(JSP standar TagLibrary)
引用包:在jsp中对JSTL进行引用: <%@ taglibprefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
对集合进行遍历: items="$(要遍历的集合)" var="自定义的变量"
<c:forEach items="${plist}" var="product">
${product.pname}
</c:forEach>
在界面进行条件判断:
<c:iftest="${plist.pageNumber < plist.pageCount}">
</c:if>
EL表达式和JSTL让页面可以灵活的添加Java代码,方便我们对页面的操作。