• Java Web开发基础(3)-JSTL


        在DRP项目中接触到了JSTL标签库,对我这样的比較懒的人来说,第一感觉就是“惊艳”。

    JSTL标签库的使用。能够消除大量复杂、繁复的工作。工作量降低的不是一点半点。是降低了一大半。不论什么工具的引入,都会使我们的工作变的简单。可是问题是我们工作能够变的简单,可是我们不能让自己的大脑变的简单。所以,我们不是简单的会用就能够。我们还须要了解这个工具是怎样工作的。怎样为我们提供便利的。ok。以下进入正题,我们从问题開始……

        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开发的现实和逻辑划清了界限。也就是说在开发者的配置上实现了解耦和。

                             
  • 相关阅读:
    我罗斯方块最终篇
    我罗斯汇报作业一
    11组-Alpha冲刺-2/6
    11组-Alpha冲刺-1/6
    结对编程作业
    11组 团队展示
    第一次个人编程作业
    第一次博客作业
    寒假作业3
    寒假作业2
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6754065.html
Copyright © 2020-2023  润新知