JAVA学习篇–JSTL基金会

JAVA学习篇–JSTL基金会

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117334.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu安装中文输入法搜狗_ubuntu切换中文输入法快捷键

    ubuntu安装中文输入法搜狗_ubuntu切换中文输入法快捷键Ubuntu安装中文输入法

    2022年9月26日
  • macOS安装yarn

    macOS安装yarnmacOS安装yarn最近在使用Jeecg框架,也需要yarn支持。1.通过HomeBrew安装brewinstallyarn2.升级yarnbrewupgradeyarn3.查看版本号yarn-v

    2022年5月9日
  • JS动画卡顿分析_学会java就能自己设计软件吗

    JS动画卡顿分析_学会java就能自己设计软件吗文章目录动画卡顿分析及解决方法一、卡顿原因分析二、优化的一些方法动画卡顿分析及解决方法一、卡顿原因分析我们所使用的设备大多数的刷新频率都是60HZ,也就是每秒钟会有60个画面来组成一个完整的动画来进行展示。这就要求我们的浏览器对每一帧动画的渲染都在16ms内完成(1秒等于1000ms),一旦渲染时间超过了这个时间段,用户在观看时就会感觉到卡顿。通常,一般人可以分辨的频率也在60HZ左右,所以经常会有人提起打游戏时卡顿,也就是游戏掉帧。二、优化的一些方法1.JavaScript的相关优化:优化Jav

    2022年10月11日
  • Ink笔记_ink correction

    Ink笔记_ink correction最近想要复刻一下稚晖君的小卡片,因此来学习一下。1.ST25DV作为NFC的PHY通过I2C总线和STM32通信,主要作用有两个:能量采集以及NFC通信。注意,ST25DV只是负责和手机进行NFC通信,而不负责IC卡的读写功能,因为ST25DV只支持ISO15693的RFID协议,而我们常用的IC卡(M1卡)是ISO14443协议的,所以并不能直接使用这颗芯片进行IC卡模拟。2.IC卡的模拟功能这一版中实现得比较简单,就是直接集成了多颗UID芯片(很便宜,1~2元一片),然后和ST25DV共用N

    2022年10月30日
  • 百度云里视频在线播放, 字幕乱码的解决办法

    百度云里视频在线播放, 字幕乱码的解决办法这几天折腾了一下百度云,放了个电影准备外出的时候看,结果找了一个没字幕,从射手上下载了字幕以后浏览器里一播放发现居然是乱码查看了一下字幕,在编辑器里看着没问题,于是猜想是不是编码的问题用UE

    2022年7月4日
  • ubuntu下安装nginx_Linux中安装Nginx

    ubuntu下安装nginx_Linux中安装Nginx1.首先使用dpkg命令查看自己需要的软件是否安装。①、例如查看zlib是否安装:dpkg-l|grepzlib②、依赖包openssl安装,命令:sudoapt-getinstallopenssllibssl-dev③、解决依赖包pcre安装,命令:sudoapt-getinstalllibpcre…

    2022年9月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号