六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 11|回复: 0

JSTL标签 && EL

[复制链接]

升级  20%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
10
 楼主| 发表于 2013-2-4 19:59:12 | 显示全部楼层 |阅读模式
     去年自己有看过EL,当时由于对JAVA并不是很理解,所以感觉这玩意没什么花头,也没深究,JSTL是年初看spring那本上海买来的书时候看到的,当时只简单的认为JSTL是一种标准,而且书上介绍的并不多,所以也没有太多在意,只感觉是另外的一种struts标签而已吧。
     最近项目中传递数据用json,突然一个机会我们引入了EL语言,一年后使用也让自己对其有更深刻的了解,发觉在项目中适量的使用EL语言,开发效率会快很多,而且也处理的一些数据转型上的问题,代码量大大节省,下面给个简单列子:
     传统的我们要到一个request范围内取一个form里的name字段的值,我们要:
     <% UserForm uf = (UserForm)request.getAttribute("xxx");
        String name = uf.getName();%>
     用户名:<%=name%>
     这样当然可以完成功能,但可见我们的代码量是在是太庞大了,如果我们运用EL语言,以上代码可以简化为:
     用户名:${xxx.name}
     就那么简单,那个方便你们看吧。
     至于后面在项目中运用到的JSTL标签是为了让页面显示时候来处理一些特殊字符,或日期格式的问题,比如我们在数据库中的时间格式存储的数据为“2007-08-08 00:00:00.0”而当读到页面的时候更为AUG 05 XXXXXX这样的老长一段,而我们页面只需要输出yyyy/mm/dd的格式,EL并没有这附带的数据转型功能,所以为了解决这个问题,我们引入了JSTL标签,看了之后才发觉其实EL本身就是JSTL中的一部分,如果合理的运用他们两功能将N强大。
      比如我们为了处理日期的问题,传统我们要写一个类,然后对数据进行转型,而再JSTL面本身就有了一个处理日期格式的标签:<fmt:formatDate value="${arr.createdDate}" type="date" pattern="yyyy/MM/dd" var="date"/>这样就对arr.createdDate的时间格式进行了转型,然后我们在用的时候只要用EL调这个标签即可${date}。
     同时JSTL的C标签也很强大,比如我们用EL取得数据中包括<td><a>这样的HTML代码字符时就会给页面照成影响(但EL给INPUT框传值是不会出这问题),为解决这问题我们使用JSTL标签<c:out value=${xxx} />来实现以上功能。还有<c:forEach循环标签也很棒,这我就不说了,大火有兴趣的可以去试试,相信对你的项目开发将带来很大的方便~
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表