EL/JSTL
1EL 全名为Expression Language。EL主要作用:
1.获取数据:
EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域中检索java对象、获取数据。(某个web域 中的对象,访问javaBean的属性、访问list集合、访问map集合、访问数组)
2.执行运算:
利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}
3.获取web开发常用对象
EL表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
4.调用Java方法
EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。
2使用
使用EL表达式获取数据语法:“${标识符}”
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回””(注意,不是null,而是空字符串)。
示例:${user}
EL表达式也可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据,例如:
${user.address.city}
${user.list[0]}:访问有序集合某个位置的元素
${map.key} : 获得map集合中指定key的值
3EL11个隐式对象
pageContext pageScope requestScope sessionScopeapplicationScope param
paramValuesheader headerValues cookie initParam
4El的不足: 无法实现逻辑控制所以要使用JSTL
5JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,由四个定制标记库(core、format、xml、sql)和一对通用标记库验证器(ScriptFreeTLV和PermittedTaglibsTLV)组成。优点有:
a、在应用程序服务器之间提供了一致的接口,最大程度的提高了web应用在各应用服务器之间的移植。
b、简化了JSP和web应用程序的开发。
c、以一种统一的方式减少了JSP中scriptlet代码数据,可以达到没有任何scriptlet代码的代码。
d、允许JSP设计工具与web应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE开发工具出现
功能:主要用于基本输入输出、流程控制、循环、XML文件剖析、数据库查询及国际化和文字格式标准化的应用等。
原因:在jsp页面做条件判断或者循环操作并输出时,比较费力。
6自定义标签
为什么要使用自定义标签?MyTag如何实现?
答:
原因:
a、不想在jsp中编写java代码
b、JSTL标签库不能满足实际项目的需求
实现的流程:
a、编写标签处理器类(SimpleTagSupport的实现类)
重写doTag()
b、编写标签库文件(WEB-INF/xxx.tld)
整个文件的定义:<short-name> uri
标签的定义:<tag>
c、在jsp页面中使用标签:
导入标签库(xxx.tld)
使用标签