我的学习之路_第三十五章_EL&JSTL

2021-06-10 04:05

阅读:432

标签:服务   red   取得数据   contex   生效   requests   lang   不能   视图   

回顾:JSP:JavaServerPage=servlet
三种脚本:



三种注释:



三个编译指令:

contentType
pageEncoding
import
errorPage
isErrorPage

file

七个动作指令:



九个内置对象:
page object
request
session
applocation
response
config
out jspWriter(printWriter)
pageContext pageContext
取得其他内置对象
操作所有四个域
exception

 

JSP模式:EL&JSTL

软件的结构:MVC
M:Model:模型 模式
V:View:视图
C:Controller:控制器

EL : Expression Language 表达式语言
作用:计算表达式的值并替换到页面的当前位置。替代的
语法:${表达式}
注意:
EL只能在JSP中用,(HTML不能用)
EL只能访问域中的数据,不能访问页面中的局部变量
如果EL表达式在当前页面中不能生效(直接把表达式显示出来,没有进行计算),在page指令中设置isElgnored="false"

内置对象:(EL的内置对象,和JSP的内置对象不是一回事)
域对象:注意此四个内置对象代表的是四个域,并不代表四个JSP内置对象
pageScope
requestScope
sessionScope
applicationScope
注意:在使用EL表达式的这四个域对象指定取得数据的域范围时,如果指定了,则只在指定的
域中查询找数据,如果没找到,则返回空(不是null,就是空字符串),如果没有指定域,直接在EL表达式
中给出变量名,则由小到大在四个域中进行查询,找到为止.
请求参数对象:
请求头对象
Cookie对象
上下文对象
初始化参数对象

JSTL : JSP Standard Target Lib : JSP标准标签库
是一些由Java语言实现的标签,可以在JSP页面中使用的标签.
所以这种标签是内服务器运行的,浏览器并不能识别这些标签.
JSTL是JSP官方开发的一些标签.(任何人都可以开发标签库)

如何使用JSTL:
导包(JSTL.jar standard.jar)
在页面中声明引用标签库:

uri:当前引入标签库的唯一标识(开发标签库的开发者自定义的)
prefix:使用当前标签库的标签时,使用的前缀.自定义(只在当前页面有效)

总结:

EL:表达式语言
${表达式}
注意:表达式中的数据除常量必须来自于域
内置对象:
pageScope
requestScope
sessionScope
applocationScope
param/paramValues
pageContext: pageContext.request.contextPath 取得项目名
header/headerValues
initParam
cookie
empty:
数值:是否为0
字符串:是否为空“”
对象:是否为null
集合:否为长度为0

JSTL:
使用方式:
导包:jstl.jar standard.jar
在页面中引用标签库:

uri:开发标签库中开发者自定义
prefix:当前页面自定义的(每个页面都可以不一样)
使用自定义的前缀引用标签:

if
属性:test : 属性值的一个结果为布尔值的表达式,根据此表达式的结果决定是否运行if标签的内容
没有else,想要实现else只能是在if标签的后面跟一个反条件的if
forEach
List:
Map:
var所定义的m是一个键值对,可以通过m.key/m.value 得到键和值

计数型循环:
var 循环控制变量
begin 起始值(闭区间)
end 结束值(闭区间)
step 步长

varStatus 属性 : 代表的是当前本次循环的状态
index:从0开始
count:从1开始
first : 是否是第一个
last:是否是最后一个

--------------------------------------------------------------------------------------------------------------
EL不能直接访问局部变量,只有被保存在域中,才能被EL表达式访问到
在${}前面加反斜杠,代表转义,此EL表达式就不再进行运算了,而是原样显示
--------------------------------------------------------------------------------------------------------------

例如: \${header[‘User-Agent‘] } : ${header[‘User-Agent‘] }
--------------------------------------------------------------------------------------------------------------
${pageContext.request.contextPath } 获取当前项目名
--------------------------------------------------------------------------------------------------------------


\${ empty list } : ${ empty list }

--------------------------------------------------------------------------------------------------------------

JSTL没有提供ELSE,所以想要实现if else 的结构,之恩能在if标签后面再跟上一个if标签
在test属性中设置完全相反的条件
--%>
例题:
条件成立

--------------------------------------------------------------------------------------------------------------
实现计数型循环:
for( int i = 0 ; i begin:起始值
end:结束值 闭区间
step:步长(默认为1)
--%>

${i }


--------------------------------------------------------------------------------------------------------------
对象属性:
index:整数,当前循环的索引,从零开始
count:整数,当前循环的次数,从一开始
first:布尔值,当前循环是否是第一次
last:布尔值,当前循环是否是最后一次
--%>
--------------------------------------------------------------------------------------------------------------
标签中 (var 表示:变量名 items 表示要遍历的元素)增强for
{begin:起始值 end:结束值 step:步长(默认为1)} 普通for
--------------------------------------------------------------------------------------------------------------

 

我的学习之路_第三十五章_EL&JSTL

标签:服务   red   取得数据   contex   生效   requests   lang   不能   视图   

原文地址:http://www.cnblogs.com/jia-/p/7297413.html


评论


亲,登录后才可以留言!