zoukankan      html  css  js  c++  java
  • JAVA学习篇--JSTL基金会

    JSTL什么

     

    JSTL(JSP Standard TagLibrary,JSP标准标签库)是一个不断完好的开放源码的JSP标签库。

     

    为什么要用JSTL

     

    我们JSP用于开发信息展现页很方便;也能够嵌入java代码(scriptlet、表达式和声明)代码用来实现相关逻辑控制。

    看以下程序。但这样做会带来例如以下问题:

    jsp维护难度添加;出错提示不明白。不easy调试; 分工不明白;(即jsp开发人员是美工,也是程序猿);

    终于添加程序的开发成本; 


    <% if (session.getAttribute(“user”).equals(“member”)) { %>  
    <p>Welcome, member!</p>  
    <% } else { %>  
    <p>Welcome, guest!</p>  
    
    <% } %>

    由来:

     

    JSTL的初衷是为了将前台美工同开发分开。非常好的实现分层开发的目标。我们知道大多数的美工是对标签比較熟悉


    JSTL的最大优势

     

    1:让页面代码看起来更加整洁。显示逻辑一目了然,风格统一,易于维护 

    2:大量使用JSTL提供的逻辑操作(比如迭代、推断),能够大大降低JSP中脚本代码(Scriptlets)的数量

    3:非常好的实现了分层的思想! 

    4:对于美工人员来说更加easy学习和掌握,由于美工的一部分工作就是和各种标签打交道 

    5:并且相同能够对其进行自己定义扩展! 


    弊端:


    1,为前台美工人员,维护人员添加了学习成本

     

    使用简单介绍:

     

    假设要使用JSTL,则必须引用jstl.jar和standard.jar两个包。

    并在jsp文件的顶部增加下面内容:


    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>  
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 

    主要标签分类:

     

    <c:> 核心标签库

    包含与表达式相关的标签,输出JSP页面内容时的流程制标签,迭代操作标签,生成和操作URL的标签.

    JSTL核心标签库(C标签)标签共同拥有13个,功能上分为4类:

    1.表达式控制标签:out、set、remove、catch

    2.流程控制标签:if、choose、when、otherwise

    3.循环标签:forEach、forTokens

    4.URL操作标签:import、url、redirect

     

    <fmt:>   格式化标签库

    定义了用来格式化数据(尤其是数字和日期)的操作还支持使用本地化资源束进行JSP页面的国际化


    <fn:> Function标签库

    提供了一组经常使用的 EL函数,主要用于处理字符串,在 JSP 中能够直接使用这些函数

     


    JSTL一般配合EL一起使用,因此先看看EL.


    EL(Expression Language)目的:为了使JSP写起来更加简单


    语法结构:${expression}

    举例:< %=request.getParameter(“username”)% > 等价于 ${ param. username }


    以下我们来应用JSTL来改动一下jsp的页面:

     

    使用JSTL之前:


    <td>
    		<select name="category" class="select1" id="category">
    			<%
    				for (int i=0; i<itemCategoryList.size(); i++) {
    					ItemCategory ic = (ItemCategory)itemCategoryList.get(i);
    					String selectedString = "";
    					if (item.getItemCategory().getId().equals(ic.getId())) {
    						selectedString = "selected";
    					}
    			%>
    				<option value="<%=ic.getId() %>" <%=selectedString %>><%=ic.getName() %></option>
    			<%
    				}
    			%>
    		</select>
    </td>


    使用JSTL之后:


    <td>
    		<select name="category" class="select1" id="category">
    			<!-- 遍历list数组。将值存放到itemCategory中 -->
    			<c:forEach items="${itemCategoryList}" var="itemCategory">
    				<c:set var="selectedString"/>
    				<!-- 假设item.itemCategory.id等于itemCategory.id -->
    				<c:if test="${item.itemCategory.id eq itemCategory.id}">
    					<!-- 将selected的值存放到selectedString变量中 -->
    					<c:set value="selected" var="selectedString"/>
    				</c:if>
    				<option value="${itemCategory.id }" ${selectedString }>${itemCategory.name }</option>
    			
    			</c:forEach>
    			
    	</select>
    
    </td>

    总结:


    对于JSTL来说。它对jsp页面进行了进一步的拆分。将jsp页面中的JAVA代码,隔离出来,不必要美工去关心java代码的实现。仅仅考虑界面的美化就可以,这样职责单一,分工明白。

    在做DRP项目总结时。深刻体会到,事实上我们如今学的好多技术实际都是抽象的不断扩展和延伸。是为了程序的复用性和易用性添加!我们都是在不断抽象。不断总结。不断简单化地进行学习!让我们的程序更加面向变化。




    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Brain network involved in autonomic functions 与自主功能相关的大脑网络
    Brief summary of classical components of ERP 事件相关成分(ERP)经典成分小结
    ICA & Percentage Variance Account For (PVAF)
    数据处理中白化Whitening的作用图解分析
    Loadings vs eigenvectors in PCA 主成分分析(PCA)中的负荷和特征向量
    主成分分析(PCA)和独立成分分析(ICA)相关资料
    Sketch of heart and QRS complex 心脏及QRS波群简图
    Brain Network visulation in EEG 脑电网络可视化
    Phase Locking Value (PLV) 神经信号的锁相值
    ubuntu16.04下的一些基本操作笔记
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4714007.html
Copyright © 2011-2022 走看看