JSP的标签技术
2021-07-14 05:07
标签:ade clu 保存 property 数据库 rto 格式 三元 actions jsp的标签技术:在jsp页面中最好不要出现java代码,这时我们可以使用标签技术将java代码替换成标签来表示 1.jsp标签:sun原生提供的标签直接在jsp页面中就可以使用 (1)获取数据: ~获取常量 (2)执行运算: 三元运算符 (3)获取常用开发对象:el中内置了11个内置对象,这些对象el内置的,不需要提前定义就可以直接在el中使用 !pageScope -- page域中属性组成的Map !param -- 所有请求参数组成的Map header -- 所有请求头组成的Map !cookie -- 所有cookie信息组成的Map initParam -- 所有web应用的初始化参数组成Map (4)调用java方法: -- 不需要大家自己会写调用方法的过程,只要会调用别人写好的标签库就可以了 fn标签库 3.JSTL: 4.自定义标签技术: 标签:JSP既可以用来生成HTML页面,也可以直接书写java源码处理逻辑,这就导致了很多开发者在JSP出现初期,只用JSP做开发,这个JSP页面十分庞大、充满了java源码和HTML标签、许多百分号,逻辑结构混乱,不宜调试程序和页面美化。于是人们希望将java源码从JSP页面中尽量抽离,但是把所有java源码都抽走是不现实的,最基本的获取属性、简单的页面逻辑还是需要的,于是,sun公司就提供了JSP中的标签开发技术,以一个标签代表一种功能的java代码,是整个jsp看起来更像一个HTML,并且不丢失JSP进行逻辑处理的功能。 2.el表达式:替代脚本表达式,在j2ee1.4以前默认是不支持el,如果需要需要指定page指令[isELIgnored="true | false" ]为false,j2ee4.0后默认支持el ========================================== 4.自定义标签 JSP的标签技术 标签:ade clu 保存 property 数据库 rto 格式 三元 actions 原文地址:http://www.cnblogs.com/dreamHighMjc/p/7076652.html
使用中括号的地方都可以使用点号替代,除了中括号中是数字或者中括号中包含特殊字符(-.)的情况除外
在中括号中如果不用双引号引起来则是变量,先找变量的值再拿变量的值使用.如果用双引号则是常量,直接使用常量的值
字符串/数字/布尔类型,直接写在el表达式中,el直接进行输出
~获取域中的变量
如果el中写的是一个变量的名,则el会调用pageContext的findAttribute方法,在四大作用域中以给定的名字找对应的属性值,找到后进行输出,如果四个域中都找不到,什么都不输出
~获取数组中的数据
~获取集合中的数据
~获取Map中的数据
~获取javabean的属性
算数运算
+-*/
逻辑运算
比较运算
empty运算符
!pageContext -- 有了它可以很方便的获取jsp页面中的9大隐式对象
!requestScope -- request域中属性组成的Map
!sessionScope -- session域中属性组成的Map
!applicationScope --application域中属性组成的Map
paramValues -- 所有请求参数组成的Map
headerValues -- 所有请求头组成的Map
~写一个类其中包含要被el调用的方法,这个方法必须是静态的方法
~写一个tld文件在其中对要被调用的静态方法进行一下描述
~在jsp页面中taglib指令将tld文件引入当前jsp页面,从而在jsp页面中就可以调用描述好的方法
!!
!!
!!
!!
1.JSP标签:由sun公司提供,属于jsp规范中的内容,不需要引入第三方标签库
property="propertyName" value="{string | }" |
property="propertyName" [ param="parameterName" ] |
property= "*"
}/> 用于为bean的属性负值name指定bean的名字,property指定要设定的属性的名字,value指定设定的属性的值,param用来指定使用哪个请求参数设定该属性,property可以设置为*,用来将所有的请求参数自动设置懂啊bean对应的属性上
2.1获得域中的属性
${propName}在四个域中搜寻proName属性,输出该值到输出流中
${pageScope/requestScope/sessionScope/applicationScope.proName}获取指定域中的属性
${attr[0]}获取域中的集合的指定元素
${list[0]}获取list中的指定位置元素
${map.keyName}获取map中指定键的值
${bean.propName}获取javaBean的属性,可以认为是调用了javaBean的getXXX方法,
~最重要的一个应用场景:在写路径的时候最好不要把web应用名称写死,java中应该用request.getContextPath去获取。jsp中就用el获取:${pageContext.request.contextPth}
~.和[]区别使用点的地方都可以用中括号,如果属性名是数字或包含特殊符号(.-)就必须使用中括号。例子:${map["first.name"]}
2.2进行简单运算
(1)算数运算:所有参与元算的元素都会被转成数字,如果不能转就报错,空元素参与运算当作没参与。
(2)关系运算:
(3)逻辑运算:
(4)empty/not empty判断一个对象或集合或数组是否为空或长度为0
(5)三元表达式 name == null ? "张三" : name;
2.3获取web开发常用对象
pageContext:代表pageContext对象,注意和pageScope进行区分
pageScope:代表page域,可以用来获取page域中的属性
reqeustScope:代表reqeust域,可以用来获取reqeust域中的属性
sessionScope:代表session域,可以用来获取session域中的属性
applicationScope:代表application域,可以用来获取application域中的属性
param 代表请求参数组成的map集合${param.userName}
paramValues 代表请求参宿组成的map集合,但是此集合的value是String[],用来获取一名多值的param
header 获取请求头组成的map
headerValues 获取请求头组成的map但是value是一个String[],用来获取一名多值的head
cookie 获取cookie组成的map对象,此map的值是一个cookie对象${cookie.cookieName.cookieValue}
initParam 以map封装的web.xml中配置的整个web应用的初始化参数
2.4调用java方法
el表达式可以调用java中的静态方法,分如下步骤完成:
(1)编写一个类,其中应该包含要使用el调用的静态方法
(2)编写一个tld文件,描述该方法的调用,在创建tld文件时应选用2.0版本的jsp配置,指定名称空间uri和缩写prefix
(3)在tld文件中配置方法信息
java.lang.String EncodURL( java.lang.String )//对该方法的描述:返回值类型 方法名(参数类型)
(4)在jsp中使用引入tld文件
(5)在jsp中使用${ppp:encodeURL("xxxx")}调用
2.5SUN提供的EL函数库,基本上都是对字符串进行操作的函数,请参考张老师写的《第8章 标准标签库_0519.doc》
3.JSTL标签库,在javaee4.0需要导入JSTL相关的jar包,在javaee5.0开始,默认已经包含了此jar包。还要需要用指令引入标签库
3.1介绍
JavaServer Pages Standard Tag Library
由JCP(Java Community Process)指定标准
提供给 Java Web 开发人员一个标准通用的标签函数库
和 EL 配合来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性、维护性和方便性
一般我们使用JSTL1.1以上的版本,应为从这个版本开始支持EL表达式
JSTL1.0默认不支持el表达式,不建议使用
3.2JSTL标签库
****核心标签库 (core) --- c
国际化标签 fmt
数据库标签 sql --Servlet
XML标签 xml
JSTL函数(EL函数) el
3.3JSTL核心标签库
上一篇:jQuery源码1
下一篇:webpack项目搭建