当前位置: 代码迷 >> Web前端 >> El学习札记
  详细解决方案

El学习札记

热度:460   发布时间:2013-01-21 10:15:39.0
El学习笔记
上了将快50天的课程,来说说我的心得吧,笔记是很重要的,是我们复习的资料,是我们查找知识点,典型例题的依据。所以记笔记是很重要的,但是怎么记笔记还是有讲究的。
要调理清醒,如果我们有了一个不会的知识点就就去吧笔记重头到尾看一遍,有时候还不一定能看到,所有要想书的目录一样做个索引把知识点都列出来,(或是今天都讲的知识什么,怎么用,典型例题是什么)。下面就展示是一下我的笔记。
FALSE
EL-day40
EL-day40            主讲内容:El                典型例题:                     关键字:EL ,隐含对象 的取值                  主讲老师:张小飞               2012-12-19
EL
1.简介
1.EL出现的原因?
2.什么是EL
3.EL能干什么?
4.需要导包?什么包?
2.EL的基本运算
2.1 .[]运算
2.2 算数运算
2.3 关系运算
2.4 逻辑运算
2.5 其他运算
2.5.1 条件运算符
2.5.2 employ运算符
3.EL表达式的隐含对象及其用法
简介
1.El出现的原因?
jsp页面中嵌入java代码做业务逻辑和输出都是特别麻烦的事,后来就有人设计出来ELJSTL标签来实现输出和一定的业务逻辑。
EL表达式和JSTL标签都会被编译为java代码去执行。
2.什么是EL
Exprrssion language(表达式语言)是jsp规范的一部分(不需要导包)
3.EL都能干什么?
可以再页面得到四大域中的数据,并输出。
功能相当于jsp表达式:用于输出指定对象的一些数据。
*4.不需要导包。
EL的基本运算
1..[]运算符
El提供了实现两种相应数据存取的运算符。
2.算数运算符
+${17+5}-${17-5}*${17*5}/div${17/5}%mod${17%5}
3.关系运算符
==eq${5==5} or ${5 eq 5}  true
!= ne ${5!=5} or ${5 en 5}    false
< lt $(5< 5) or ${5 lt 5}         false
> gt ${5>5} or ${5 gt 5}       false
<= le ${5<=5} or ${5 le 5}   true
>= ge ${5<=5} or ${5 ge 5}  true
在判断两个变量是否相等时,${变量1==变量2}
4.逻辑运算符
&& and ${A&&B}${A and B}  true/false
| or  ${A|| B}${Aor B}       true/false
! out  ${!A}${not A}         true/false
5.其他运算符
条件运算符 ${A?B:C}
employ:    ${employ A}
----------------------运算符Test------------------------
request.setAttribute("person1", new Person("1234", "PAPA1", 14));
request.setAttribute("points2", new Person("12345", null, 16));
%>
${person1.age-person2.age}
----关系运算:
${person1.age>person2.age}
----逻辑运算:
${!(person1.age>person2.age)}
----empty运算:
${empty person1.name}
${empty person2.name}
EL表达式的隐含对象
pageScope,requestScope,sessionScope,applicationScope,param,pageContext
对应jsp中四个域对象,他们是Map类型对象,他们分别存放了对应域对象的属性,我们可以冲中根据属性名取出属性值.
${pageScope}
${requestScope}
${sessionScope}
${applicationScope}
param:
是一个Map对象他存放请求的产生,可以从中根据参数名取出参数值.
他是一个PageContextImpl(PageContext类的实现子类类型的对象,他是一个javaBean对象,可以根据属性名得到她的队形属性值
pageContext
***后加***
${cookie.Cookie名称.value}
${initParam.参数名}
${paramValues} :获取绑定数组参数
*****注意:********
*1.在不同域中有相同名称的对象,系统查找的范围是从小到大(page--request--session--application)
*2.${msg}没有意义不会显示null,而是什么都不显示。
附件
现实世界中的数据类型:
单一数据
映射数据(key---value
map
复合对象
key是一个标识,value是用来操作的数据
根据keyvalue
数组
根据下标取数据
EL表达式在隐含对象中取出数据
***********1.数据类型为对象取值********************
//设置request域中的数据,四大域中获取对象数据的格式相同
***1.${xxxScope.Person.name}****
request.setAttribute("person", new Person("123", "PAPA", 11));
//EL获取request域中对象数据根据属性名获得的属性值
${person.id }------${person.name }---${person.age }
Person p = (Person)request.getAttribute("person");
<%p.getId() %>---<%=p.getName() %>---<%=p.getAge() %>
//通过参数名获取参数值
****2.${param.nameKey}****
//EL等同于下面的jsp语法
<%=request.getParameter("nameKey")%>
****3.${array[0]}*****
<%List array=new ArrayList();%>
<%array.get(0)%>
********pageContext***********
pageContext对象中取出指定属性所对应的属性值这里的属性特指javabean的属性)
所有这个类中get方法所对应的属性都可以通过".属性名"来取得
${pageContext.request.servletPath }
//EL等效于下面的jsp语法
<%=request.getServletPath() %>
${pageContext.session.id}
<%=session.getId() %>
*****原理:******
反射:属性名是getName()方法去掉get把第一个首字母小写(JavaBean的属性)
*************2.数据为集合取值*********************
下面四个map对象中根据key取出value
${xxxScope.username}
<%xxx.getAttribute("username")%>
xxx代表:pageContextrequestsessionapplication
**注意:**
1.在获取对象范围属性值是,可以不用指定范围,系统会自动按从小到大查找。
2.得到属性值对象数据后,如果它本身还有属性可以直接通过“.属性得到队形的属性值。
request.setAttribute("person", new Person("123", "PAPA", 11));
${person.id }------${person.name }---${person.age }
Person p = (Person)request.getAttribute("person");
p.getId() %>---<%=p.getName() %>---<%=p.getAge()



记笔记我推荐还是电子笔记(需要一款好的电子笔记软件)
1.       方便修改(在那都能插入文字和修改)
2.       方便填充(笔记需要不断的填充)
3.       覆盖方面全(我们可以吧所有的相关知识都写入我们的电子笔记中)
4.       图文(或结构图)


  相关解决方案