el和自定义标签库

来源:互联网 发布:局域网视频直播软件 编辑:程序博客网 时间:2024/05/23 15:47

el表达式不是说能完全消除JAVA代码,只能在一定程度上减少JAVA代码在页面上.

EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它的默认值会先从Page 范围找,假如找不到,再依序到Request、Session、Application范围。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null

 

El隐式对象

与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope,它们基本上就和JSP的pageContext、request、session和application一样,不过必须注意的是,这四个隐含对象只能用来取得范围属性值,即JSP中的getAttribute(String name),却不能取得其他相关信息,例如:JSP中的request对象除可以存取属性之外,还可以取得用户的请求参数或表头信息等等。但是在EL中,它就只能单纯用来取得对应范围的属性值,例如:我们要在session 中储存一个属性,它的名称为username,在JSP 中使用session.getAttribute(“username”) 来取得username 的值, 但是在EL 中, 则是使用
${sessionScope.username}来取得其值的

•${param.name}
•${paramValues.name}
•这里param 的功能和request.getParameter(String name) 相同, 而paramValues 和
•request.getParameterValues(String name)相同。如果用户填了一个表格,表格名称为username,则我们就可以使用${param.username}来取得用户填入的值

 

可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息

 

 

标签库:

创建客户化JSP标签库的步骤:

•(1)创建标签的处理类
•(2)创建标签库描述文件
•(3)在JSP文件中引入标签库,然后插入标签,例如:<mm:hello/>

 

•Servlet容器编译JSP网页时,如果遇到自定义标签,就会调用这个标签的处理类。
•标签处理类必须扩展以下两个类之一:
–javax.servlet.jsp. tagext .TagSupport
–javax.servlet.jsp. tagext . BodyTagSupport

 

记住TagSupport的两个重要属性:

•parent:代表嵌套了当前标签的上层标签的处理类
•pageContext:代表Web应用中的javax.servlet.jsp.PageContext对象

 

一个标签其实就是一个类,自定义的标签也是一样的.它的属性就是那个类的属性,那个类的属性可以有的getter和setter方法
tld:taglib descript,tld文件必须存放在WEB-INF下的.
uri表示的是整个tld里面的东西,如果用了这个,表明我可以用这个tld里面的所有标签.
开发标签库的流程要搞清楚,这样看别人写的标签库才容易.

 

关于标签库的属性:

<hello:secondTag key="title"/><br/>
     <hello:secondTag key="body"/>

这个属性的名字是key,那么那个继承自TagSupport的类中也是有个属性名字叫key,提供getter和setter方法,当你像上面这样用这个标签的时候,那么他就会自动调用setter方法,把这个属性的值传过去.

原创粉丝点击