JSTL和EL基础

    在博客《Model1、Model2和三层》中,Model2已经将JSP承担的内容大大减少,主要用于显示,但是对于我们要达到完全视图来说,里面嵌套的Java代码不是我们想要的,就开发而言,jsp可以交给美工开发,美工最熟悉的莫过于布局和标签,去除Java代码后的JSP页美工更容易操作,为了达到此目的,JSTL和EL就非常必要了。

JSTL和EL简介

    EL

    Expression Language,表达式语言,通过操作存在于PageContext等的数据,实现JSP的编写更加简单,单纯使用EL不用引入jar包,只要容器支持即可。

    EL的隐含对象

    

    EL基本使用

    ${ld}相当于依次从pageScope-requestScope-sessionScope-applicationScope,查找ld的变量,如果有则返回其值,没有则返回null,当然如果确定变量位置,可以直接获取,例如${requestScope.ld}。除了上述隐含对象,EL把其它内容全部当做某个域中的变量。

    EL语法

    除此之外,EL还可以进行常见运算

  • 算术运算符 +、-、*、/(或 div)和 %(或 mod)
  • 关系运算符 ==(或eq)、!=(或ne)、<(或lt)、>(或gt)、<=(或le) 和 >=(或ge)
  • 逻辑运算符 &&(或 and)、||(或or)和 !(或 not)
  • 验证运算符 empty

    EL获取属性解析

    假设已经将user对象添加到requestScope中,现在要获取user对象的name属性:使用${user.name}取得的是user对象的name属性,获得属性的途径并非通过是定义的变量private String username,而是根据方法getName()去除get然后小写为name得到,所以修改username为username1对${user.name}的使用无影响。

    EL获取复杂属性

    使用EL获取user对象的group属性的name属性,可以使用${user.group.name};使用EL获取数组第二个参数可以为${array[1]},获取map中的k1可以为${map.k1}得到。

    JSTL通常与EL配合使用。

    JSTL

    JSP Standard Tag Library,JSP标准标签库,是一个不断完善的开放源代码的JSP标签库,它的使用需要容器的支持,可以以优雅的标签方式代替JSP中的Java代码。JSTL相比EL可以提供更多可控细节。

配置使用

    配置

    使用JSTL需要引入jstl.jar和standard.jar两个包,JSP文件中添加标签

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

    Core

    核心库提供了常用的out、set、remove、forEach等标签,使用实例:

<c:choose >
    <c:when test="${v1 gt v2}" >
        v1大于v2
    </c:when>
    <c:otherwise>
        v1大于v2
    </c:otherwise>
</c:choose>

    Format

    Format库提供了对格式的控制标签,例如:

today(default):<fmt:formatDate value="${today}"/><br/>
today(default):<fmt:formatDate value="${today}" type="date"/><br/>
today(default):<fmt:formatDate value="${today}" type="time"/><br/>
today(default):<fmt:formatDate value="${today}" type="both"/><br/>
today(default):<fmt:formatDate value="${today}" type="both" dateStyle="full"/><br/>
today(default):<fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss"/><br/>
    可以得到:

    

总结

    总的来说,通过JSTL和EL,可以减少JSP页面的编程工作,以标签的方式优化,通过JSTL和EL的功能显示,使得JSP职责更加单一,开发分工更加明确。


    更多博客,其访问《项目总结》。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值