文档详情

EL与自定义标签.doc

发布:2017-03-03约1.14万字共15页下载文档
文本预览下载声明
九、EL(Expression Language表达式语言) EL:表达式语言,EL的作用就是替换掉JSP页面中存在的大量的java代码。在我们JSP页面中,最好的情况下是没有java代码片段,而是使用大量的JSP标签或者表达式语言来进行一个页面的输出,为了使JSP写起来更加简单。 1、EL的语法 ${expr} \${expr} 转义 输出 ? EL 语法很简单,它最大的特点就是使用上很方便 ? ${sessionScope.user.sex} session.setAttrribute(“user”,user) ? 所有EL都是以 ${ 为起始、以} 为结尾的。上述 EL范例的意思是:从Session的范围中,取得 ? 用户的性别。假若依照之前JSP Scriptlet的写法 如下: ? User user = (User)session.getAttribute(user); ? String sex = user.getSex( ); 2、[ ]与.运算符 ? EL 提供 . 和 [ ] 两种运算符来存取数据。 下列两者所代表的意思是一样的 ? ${sessionScope.user.sex} 等于 ? ${sessionScope.user[sex]} ? . 和 [ ] 也可以同时混合使用,如下: ? ${sessionScope.shoppingCart[0].pric e} ? 回传结果为shoppingCart中第一项物品的 价格。 两者差异: ? (1) 当要存取的属性名称中包含一些特殊字 符,如 . 或 – 等并非字母或数字的符号,就一定要使用 [ ],例如: ? ${user.My-Name } ? 上述是不正确的方式,应当改为: ? ${user[My-Name] } ? 我们来考虑下列情况: ? ${sessionScope.user[data]} ? 此时,data 是一个变量,假若data的值为sex时,那上述的例子等于${sessionScope.user.sex}; ? 假若data 的值为name时,它就等于${sessionS}。因此,如果要动态取值时,就可以用上述的方法来做,但 . 无法做到动态取值。 ${2+3} ${2/3}或 ${2 div 3} ${2%3}或${2 mod 3} ${5==5} ${5 eq 5} ${5 != 5} ${5 ne 5} % pageContext.setAttribute(a,b); request.setAttribute(a,c); session.setAttribute(a,d); application.setAttribute(a,e); % ${a} ${requestScope.a} 3、变量 EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。 属性范围在EL中的名称 Page pageScope Request requestScope Session sessionScope Application applicationScope PageContext pageContext Parameter param 我们也可以指定要取出哪一个范围的变量 自动类型转换: EL 除了提供方便存取变量的语法之外,它 另外一个方便的功能就是:自动转变类型 ${param.count + 20} 会将传来的count自动转化为数值 4、JSP EL 中的有效表达式 3、隐式对象 JSP 表达式语言定义了一组隐式对象,其中许多对象在 JSP scriplet 和表达式中可用: pageContext JSP 页的上下文。它可以用于访问 JSP 隐式对象,如请求、响应、会话、输出、servletContext 等。例如,${pageContext.response} 为页面的响应对象赋值。 此外,还提供几个隐式对象,允许对以下对象进行简易访问: param 将请
显示全部
相似文档