180 likes | 340 Views
网络编程. 2. EL 、 JSTL 和 JDBC 首都师范大学信息工程学院 计算机科学与技术实验教学示范中心. 什么是 EL. EL, Expression Language 表达式语言 EL 是 JSP 2.0 开始引入的新概念 EL 也是 JSP 2.0 的核心技术之一 EL 不是 JSP 独有技术、在 JSF 等新技术中都可以找到 EL 的身影. EL 的用途. 提供复杂表达式 ( 涉及 Java 对象 ) 的值 访问一个任意 Java 对象的性质 调用 JavaBean 或者其他 Java 对象的方法. 使用 EL. EL 的用法 ${……}
E N D
网络编程 2. EL、JSTL和JDBC 首都师范大学信息工程学院 计算机科学与技术实验教学示范中心
什么是EL • EL, Expression Language 表达式语言 • EL是JSP 2.0开始引入的新概念 • EL也是JSP 2.0的核心技术之一 • EL不是JSP独有技术、在JSF等新技术中都可以找到EL的身影
EL的用途 • 提供复杂表达式(涉及Java对象)的值 • 访问一个任意Java对象的性质 • 调用JavaBean或者其他Java对象的方法
使用EL • EL的用法 • ${……} • 在模版数据(html)页面中使用EL • <h1>1+5的值是${1+5} </h1> • 在JSP动作(各种标记)中的属性中 • <input type=“text” name=“user” value=“${param.user}” />
EL中的内容 • 算术操作符 • 逻辑操作符 • 比较操作符 • 空操作符
EL中的强制类型转换 • JSP和EL都属于弱类型(weakly type ) • 一般情况下,EL会自动找到适合的类型,并且自动进行类型转换
EL访问对象属性和集合 • 访问某个变量属性时,实用 .或者 [] • 例如: • ${param.username} • ${rs.rows[0]} • 通过EL访问嵌套属性 • ${cookie.sessionid.value} • ${rs.rows[0].username}
隐式对象 • 隐式对象 • 不用显示声明就能使用的对象 • JSP隐式对象 pageContext • 作用域隐式对象pageScope, requestScope, sessionScope, applicationScope • 参数隐式对象 param, paramValues • 首部访问隐式对象header, headerValues,cookie • 初始化参数隐式对象
自定义EL • 引用标记库或自定义标记库 • ${fn:escapeXml(…)} • ${fmt:parseDate(…)} • 引用java静态方法 • <function> • <description>Math.round(double)</description> • <name>round</name> • <function-class>java.lang.Math</function-class> • <function-signature>int round(double)</function-signature> • </function>
上机作业 • P133 习题1-3
标记库和JSTL • 标记库 • 标记库是可以在JSP中使用的定制动作(标记)集合 • 标记库的优点 • 将业务流程和页面分离 • 简化页面操作 • 提高代码复用 • 替代脚本元素
标记库和JSTL的用途 • 为JSP页面提供流程控制 • 设置JSP页面的局部变量 • JSP 2.0不提倡在JSP页面中使用脚本元素 • 即不在JSP中内嵌java代码
标准标记库JSTL • JSTL, Java Standard Tag Library • 现在用的版本是JSTL 1.1 • 主要由core、format、functions、sql和xml库组成 • 使用时需要引用standard.jar和jstl.jar • http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html
JSTL的用途 • 设置作用域变量、显示表达式和值、删除作用域变量及捕获异常 • 条件流程控制 • 循环流程控制 • URL标记 • 格式化数字和日期 • 访问关系数据库 • 访问字符串用的EL相关函数 • 国际化
TLD URI 标记(定制动作) 标记库工作原理 web.xmltaglib映射 标记库描述文件xml jar文档 <%@taglib prefix=“c”.... uri=“.../jstl/core”> <c:tag1>…..</c:tag1> taglib指令 使用标记
JSTL标记使用示例 • Core • c:set,c:remove • c:if • c:forEach • c:choose,c:when,c:otherwise • c:out • c:catch • c:url • c:redirect
JSTL标记使用示例 • Format • fmt:formatNumber • fmt:formatDate • Function • fn:escapeXml • fn:substring • fn:length • fn:contains
JSTL标记使用示例 • SQL • sql:query • sql:param • sql:update • DataSource的配置方法 • context.xml • web.xml • 结果处理