javaweb基础整理随笔------jstl与el表达式

虽然jsp中可以写java代码,但是现在不推荐这么做。

jsp虽然本质是servlet,但是主要作用只是视图,视图的任务就是显示响应,而不是在JSP中做任何关于程序控制和业务逻辑的事情。所以在JSP页面中应该尽可能少的、或者是完全不出现Java代码。

JSP标准动作中没有提供这种嵌套式访问机制,所以要想实现这个功能,就只能在JSP页面中通过Java代码来读取 Object类型的属性。从JSP2.0之后,可以使用EL表达式来处理这样的的问题。

EL表达式语言是一种简单的语言,提供了在JSP中简化表达式的方法,目的是为了尽量减少JSP页面中的Java代码,使得JSP页面的处理程序编写起来更加简洁,便于开发和维护。


el表达式语言用法:${ }
作用:读取四大域中的数据
注意:如果要忽略el表达式,1、在page标签中设置属性isELIgnored值为true 2、在表达式前加\
全域查找:${name}
page域:${pageScope.name } <!-- 取page域中name的值 -->
request域:${requestScope.name }
session域:${sessionScope.name }
application域:${applicationScope.name }

javaBean规范:
1.必须要有一个默认构造方法
2.提供get/set方式,
3.有get/set方法的成员变量,属性名称由get/set方法去掉get/set后,首字母小写

el表达式提供两种运算符来存取数据 . []
.:在el表达式中 获取对象中的数据,有get方法就能获取到,不一定要有变量
[]:一样通过下标取集合里的元素

而jstl则是开放源代码的JSP标签库,封装了jsp应用的通用核心功能

由于可以完成对逻辑部分的大部分实现,本质上也减少了再jsp中使用脚本语言编译也就是java代码的数量。

举例

1.core:核心标签库
<c:set>设置
var:变量名
value:变量值
scope:域,默认是page
<c:out>输出
value:可以是字符串常量,可以是el表达式
defalut:当输出的内容为null时,则输出此值
escapeXml:转义,默认值为true 默认转 就是当成字符串
<c:if>
<c:choose><c:when></c:when>...<c:otherwise></c:otherwise></c:choose>
<c:remove>
<c:foresch>
<c:redirect>
<c:url>
2.fmt:格式化标签库
3.sql:数据库标签库
4.xml:xml标签库

 

<c:set var="salary" value="6000"></c:set>
<c:choose>
<c:when test="${salary < 2000}">
<p>温饱</p>
</c:when>
<c:when test="${salary >2000 && salary < 5000}">
<p>小康</p>
</c:when>
<c:when test="${salary > 5000}">
<p>有钱了</p>
</c:when>
<c:otherwise> <!-- 上述选择都不是 otherwise -->
<p>。。。</p>
</c:otherwise>
</c:choose>

 

posted @ 2019-08-09 23:58  孤独的散步者  阅读(286)  评论(0编辑  收藏  举报