JSTL和EL的区别

希望各位Java大虾们多多指教... 希望各位Java大虾们多多指教 展开
 我来答
3月21日晴
2018-05-22 · TA获得超过8867个赞
知道小有建树答主
回答量:50
采纳率:100%
帮助的人:7209
展开全部

JSTL是一个不断完善的开放源代码,EL只是一个表达式。

JSTL简介:

  1. JSP 标准标签库(JSP Standard Tag Library,JSTL)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。

  2. 在 developerWorks 上其新系列的第一篇文章中,软件工程师Mark Kolb 向您展示了如何使用 JSTL 标记来避免在 JSP 页面中使用脚本编制元素。您还将了解如何通过从表示层删除源代码来简化软件维护。最后,您将了解 JSTL 经过简化的表达式语言,它允许在不必使用功能齐全的编程语言的情况下对 JSTL 操作指定动态属性值。

  3. JavaServer Pages(JSP)是用于 J2EE 平台的标准表示层技术。JSP 技术提供了用于执行计算(这些计算用来动态地生成页面内容)的脚本编制元素和操作。脚本编制元素允许在 JSP 页面中包括程序源代码,在为响应用户请求而呈现页面时可以执行这些源代码。

  4. 操作将计算操作封装到很象 HTML 或 XML 标记的标记中,JSP 页面的模板文本通常包含这些标记。JSP 规范只将几种操作定义成了标准,但从 JSP 1.1 开始,开发人员已经能够以定制标记库的方式创建其自己的操作了。

  5. JSP 标准标记库(JSTL)是 JSP 1.2 定制标记库集,这些标记库实现大量服务器端 Java应用程序常用的基本功能。通过为典型表示层任务(如数据格式化和迭代或条件内容)提供标准实现,JSTL 使 JSP 作者可以专注于特定于应用程序的开发需求,而不是为这些通用操作“另起炉灶”。

  6. 当然,您可以使用 JSP 脚本编制元素(scriptlet、表达式和声明)来实现此类任务。例如,可以使用三个 scriptlet 实现条件内容,清单 1 中着重显示了这三个 scriptlet。但是,因为脚本编制元素依赖于在页面中嵌入程序源代码(通常是 Java 代码)。

  7. 所以对于使用这些脚本编制元素的 JSP 页面,其软件维护任务的复杂度大大增加了。例如,清单 1 中的 scriptlet 示例严格地依赖于花括号的正确匹配。如果不经意间引入了一个语法错误,则条件内容中的嵌套其它 scriptlet可能会造成严重破坏,并且在 JSP容器编译该页面时,要使所产生的错误信息有意义可能会很困难。

EL简介:

  1. EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。

  2. 注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性。例如:即使现有的 pageContext 属性包含某些其他值,${pageContext} 也返回 PageContext 对象。

  3. 注意 <%@ page isELIgnored="true" %> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。

北京金瑞博
2024-08-15 广告
作为北京金瑞博企业咨询服务有限公司的工作人员,我们专注于为企业提供全面的咨询服务。关于US DMF(Drug Master File)程序,这是美国FDA要求的一种非公开文件,用于提交药品、原料药等相关数据的注册文件。它支持申请商的新药批准... 点击进入详情页
本回答由北京金瑞博提供
777简简单单
高粉答主

推荐于2017-09-02 · 简单分享知识,快乐学习!
777简简单单
采纳数:3588 获赞数:158892

向TA提问 私信TA
展开全部
JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
JSTL标准标签库包括核心标签库和SQL标签库,核心标签库常用的是if和forEach

EL即Expression Language(表达式语言)
EL的语法:${ EL exprission }
${ bean.name } 或 ${ bean['name'] }
说白了,EL是用来显示数据的,功能跟<%=表达式%> 一样,EL是不需要引入什么东西的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暗夜de忧伤
推荐于2017-09-02 · TA获得超过1936个赞
知道小有建树答主
回答量:995
采纳率:75%
帮助的人:950万
展开全部
EL即Expression Language(表达式语言)
EL的语法:${ EL exprission }
${ bean.name } 或 ${ bean['name'] }
说白了,EL是用来显示数据的,功能跟<%=表达式%> 一样,EL是不需要引入什么东西的

JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
JSTL标准标签库包括核心标签库和SQL标签库,核心标签库常用的是if和forEach
说白了JSTL常实现网页逻辑判断和迭代显示的,需要引入
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
只要JSTL和EL结合,就基本可以让页面再无<% %> jsp代码了。
给你一段我今天考试的代码:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>
<form action="work.do?method=search" method="post">
<table border="1" align="center" width="50%">
班级:<select name="student.s_class">
<option value="0">全部</option>
<c:forEach var="T_class" items="${requestScope.tClassList}">
<option value="${T_class.c_no}">
${T_class.c_name}
</option>
</c:forEach>
</select>
科目:<select name="student.s_schedule">
<option value="0">全部</option>
<c:forEach var="T_schedule" items="${requestScope.tSchedultList}">
<option value="${T_schedule.s_no}">
${T_schedule.s_name}
</option>
</c:forEach>
</select>
状态<select name="student.s_status">
<option value="0">全部</option>
<option value="1">已处理</option>
<option value="2">未处理</option>
</select>
<input type="submit" value="提交">
</table>
</form>

<c:if test="${requestScope.searchResult==0}">
<h5 align=center>无此数据</h5>
</c:if>

<c:if test="${requestScope.searchResult==1}">
<h3 align=center>查询结果如下</h3>
<table border="1" align="center" width="50%">
<tr>
<th>姓名</th>
<th>班级</th>
<th>科目</th>
<th>成绩/处理</th>
</tr>
<c:forEach var="MainBean" items="${requestScope.mainList}">
<tr>
<td>${MainBean.s_name}</td>
<td>${MainBean.c_name}</td>
<td>${MainBean.ts_name}</td>
<td>
<c:if test="${MainBean.s_status==1}">${MainBean.s_score}</c:if>
<c:if test="${MainBean.s_status==2}"><a href="work.do?method=toPiyue&stuId=${MainBean.id}">批阅</a></c:if>
</td>
</tr>
</c:forEach>
</table></c:if>
</body>
</html>
可能说得不是很清楚,这个多查查资料,多练练手就会了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式