Java Web开发基础(3)-JSTL
2014-07-21 21:37
232 查看
在DRP项目中接触到了JSTL标签库,对我这种比较懒的人来说,第一感觉就是“惊艳”。JSTL标签库的使用,可以消除大量复杂、繁复的工作。工作量减少的不是一点半点,是减少了一大半。任何工具的引入,都会使我们的工作变的简单,但是问题是我们工作可以变的简单,但是我们不能让自己的大脑变的简单。所以,我们不是简单的会用就可以,我们还需要了解这个工具是如何工作的,如何为我们提供便利的。ok,下面进入正题,我们从问题开始……
从JSP1.1开始,JSP就支持在JSP中使用自定义标签,来解决JSP脚本所带来的问题。但是,自定义标签的广泛使用引发了新的问题,即重复定义、复用性差。因此,SUN公司推出了标签的标准,即JSTL(JSP Standard Tag Libaray),而Apach实现了JSTL规范。下面价绍JSTL……
JSTL实际上是以另一种良好的界面或者说接口来代替了JSP脚本的工作,大家知道JSP页面是会被解析成Servlet的所以WebServlet容器在引入JSTL后肯定是要有对应的解析器。然后,就和原来使用JSP脚本没什么区别了。也就是说JSTL所做的工作是一种优化。
另外呢,JSTL和EL表达式都是一块使用的,但是EL表达式不算是JSTL的一部分。因为,没有JSTL的情况下,EL表达式也是可以使用的。虽然有的资料直接说JSTL包括JSTL和EL表达式两个部分,应该是不太妥当的。所以,EL表达式会在下篇博客单独介绍。
JSP版本:
JSTL版本:
总结:总的来说,JSTL最大的特点就是简单。它相当于对JSP脚本做了一次封装,或者说是外观模式的应用吧。将复杂的逻辑处理隐藏起来,对外提供统一的接口。也就是说JSP页面的开发可以不依赖于Java代码了,即在现在分工越发明细,职责越发单一的开发趋势下为web开发的现实和逻辑划清了界限。也就是说在开发人员的配置上实现了解耦和。
JSP脚本带来的问题
不知道看到这几个子,各位有什么想法?反正我觉得JSP就像孙猴子法力无边但是不服管教,是令人头疼的东西。为什么呢?JSP脚本极大的提高了程序的复杂性,同时JSP脚本也增加了代码阅读的困难。最后,也是最令人头疼的问题就是调试麻烦(感受深刻)。这就是源头了,你要是觉得体会不够深刻的话可以自己动手试试写JSP脚本从JSP1.1开始,JSP就支持在JSP中使用自定义标签,来解决JSP脚本所带来的问题。但是,自定义标签的广泛使用引发了新的问题,即重复定义、复用性差。因此,SUN公司推出了标签的标准,即JSTL(JSP Standard Tag Libaray),而Apach实现了JSTL规范。下面价绍JSTL……
JSTL 简介
JSTL包括五类标准标记库:核心库、格式库、XML库、SQL库、函数库。如下图所示:JSTL实际上是以另一种良好的界面或者说接口来代替了JSP脚本的工作,大家知道JSP页面是会被解析成Servlet的所以WebServlet容器在引入JSTL后肯定是要有对应的解析器。然后,就和原来使用JSP脚本没什么区别了。也就是说JSTL所做的工作是一种优化。
另外呢,JSTL和EL表达式都是一块使用的,但是EL表达式不算是JSTL的一部分。因为,没有JSTL的情况下,EL表达式也是可以使用的。虽然有的资料直接说JSTL包括JSTL和EL表达式两个部分,应该是不太妥当的。所以,EL表达式会在下篇博客单独介绍。
实例体验
这是在使用JSP脚本和JSTL所做的循环输出。JSP版本:
<% List itemList = pageModel.getList(); for (Iterator iter = itemList.iterator(); iter.hasNext();) { Item item = (Item) iter.next(); %> <tr> <td class="rd8"> <input type="checkbox" name="selectFlag" class="checkbox1" value="<%=item.getItemNo()%>"> </td> <td class="rd8"> <a href="" onClick="window.open('item_detail.html', '详细信息', 'width=400, height=400, scrollbars=no');"><%=item.getItemNo()%></a> </td> <td class="rd8"> <%=item.getItemName()%> </td> <td class="rd8"> <%=item.getSpec()%> </td> <td class="rd8"> <%=item.getPattern()%> </td> <td class="rd8"> <%=item.getItemCategory().getName()%> </td> <td class="rd8"> <%=item.getItemUnit().getName()%> </td> </tr> <% } %>
JSTL版本:
<c:forEach items="${pageModel.list}" var="item" > <tr> <td class="rd8"> <input type="checkbox" name="selectFlag" class="checkbox1" value="${item.itemNo }"> </td> <td class="rd8"> <a href="#" onClick="window.open('item_detail.html', '物料详细信息', 'width=400, height=400, scrollbars=no');">${item.itemNo }</a> </td> <td class="rd8"> ${item.itemName } </td> <td class="rd8"> ${item.spec } </td> <td class="rd8"> ${item.pattern } </td> <td class="rd8"> ${item.itemCategory.name } </td> <td class="rd8"> ${item.itemUnit.name } </td> </tr> </c:forEach>
总结:总的来说,JSTL最大的特点就是简单。它相当于对JSP脚本做了一次封装,或者说是外观模式的应用吧。将复杂的逻辑处理隐藏起来,对外提供统一的接口。也就是说JSP页面的开发可以不依赖于Java代码了,即在现在分工越发明细,职责越发单一的开发趋势下为web开发的现实和逻辑划清了界限。也就是说在开发人员的配置上实现了解耦和。
相关文章推荐
- Java Web开发基础(3)-JSTL
- JAVA web开发基础(三)、模式和框架
- Java Web开发基础零星知识
- Java WEB开发中对jstl的应用一(标签库引用)
- JSP基础(九)——Java Web的两种开发模式
- JAVA基础之JDBC开发、JSTL语法、EL表达式与数据分页
- 最基础的通过myeclipse搭建框架开发java web工程的步骤详解
- 最基础的通过myeclipse搭建框架开发java web工程的步骤详解
- Java Web基础——自定义标签和JSTL
- Java Web 开发基础------DAO
- Spring MVC + Spring + Mybitis开发Java Web程序基础
- Java Web开发基础(2)-JSP
- java基础开发—jstl标签库
- java基础开发—jstl标签库
- Java Web基础——自定义标签和JSTL
- Taglib原理和实现:再论El和JSTL标签-Java基础-Java-编程开发
- Java Web开发基础(1)-Servlet
- jstl标签基础开发步骤(详解)
- Java Web开发基础(1)-Servlet
- 游戏开发基础(7)