我们大家都知道,JSP主要是做页面显示的,但是在我们实际的开发中,通过<% %>来取值或操作的的这种现象特别常见。很明显html脚本,和java代码没有分离。这样会带来一些坏味道:
1、 代码操作相对繁琐;
2、是前段美工人员和代码编程人员分工职责不明确;
为了解决这样的问题,我们引用JSTL(Jsp stander Tag Libarary ),jsp 标准标签库。它是以标签的形式显示出来的,jsp页面代码看起来就很一致。给编程它由标签库和El表达式组成;
一、 下面谈谈我对标签库和EL的理解。
首先就是EL表达式,其实他类似于我们面向对象的表达式,只是它形式是这样的:${expression}。通过el表达式就可以拿到值。
标签库呢,其实个人觉的它是对我们面向对象的一些流程控制语句进行了一次封装。比如说:循环,我们对比java代码来看
<span style="font-size:14px;"> <%
List userList=(List)request.getAttribute("userList");
if(userList==null||userList.size()==0){
%>
<tr>
<tdcolspan="3">没有符合的数据!</td>
</tr>
<%
}else{
for(Iteratoriter=userList.iterator();iter.hasNext();){
Useruser=(User)iter.next();
%>
<tr>
<td><%=user.getUserName()%></td>
<td><%=user.getAge()%></td>
<td><%=user.getGroup().getGroupName()%></td>
</tr>
<%
}
}
%></span>
用标签库来标示:
<span style="font-size:14px;"> <c:forEach items="${userList}" var="user"varStatus="vs" begin="0" end="9"step="1">
<tr>
<td>${user.userName}</td>
<td>${user.age}</td>
<td>${user.group.groupName}</td>
</tr>
</c:forEach></span>
它使用起来比较简单。
二、JSTL的简单使用
之前的版本应该需要引入jstl.jar和standard.jar两个包,关于版本细节不做过多介绍。
我们现在的Tomacat和j2ee的版本都比较高,所它本身就自带我们就不用引入了。就不用考虑将.jar包引入到项目中了。但是我们需要我们用到的标签库引导我们的jsp页面上。
1. 将路径引入jsp页面
<%@ tagliburi="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ tagliburi="http://java.sun.com/jsp/jstl/functions"prefix="fn" %>
<%@ tagliburi="http://com.hxj/functions" prefix="myfn" %>
具体使用可参考:
http://www.cnblogs.com/o-andy-o/archive/2012/10/24/2737530.html
2、jstl的内置对象的取值范围:pageScope,requestScope,sessionScope,applicationScope,变量和参数没有指定范围,搜索时按pageScope~~~ applicationScope的顺序搜索。
3、jstl中,主要用到五类库,用的时候一定要对应的引用上。
三、总结
学完了JSTL之后,最大感受就是,看着陌生,其实它的思想都是我们以前学过的思想。标签类似于html的标签,标签的取值集操作类似于面向对象的取值和操作。老师说的对,“用已有的只是去学习新的知识”,easy!