无脚本的jsp(动作,EL)
2017-03-18 21:56
337 查看
无脚本jsp的必要?
在实际开发中web设计人员很可能不太懂Java语言,而在jsp中Java作为脚本使用,这样就造成不便。我们应该使用一些web设计人员容易接受的"脚本",javaweb2.0就出现了EL,JSTE来替换java脚本(srciptlet,声明等)。
1 jsp动作元素
(1) <jsp:useBean id="p" type="person" class="person" scope="request"/>
id:属性名;type:id类型 ; class:bean对象类型; scope:属性作用域
这个标准动作转换成servlet是什么样子的?
结论:id就是一个实例的引用(bean),通过id可获取性质(成员变量),要知道bean有getXX(),setXX();
(2) <jsp:setProperty name="p" property="username" vlaues="xiaoming"/>//设置属性值,name是useBean的id;
(3)<jsp:getProperty name="p" property="uername"/>//获取username属性值xiaoming
这几个有什么用?
接收servlet中的bean,在jsp中获取bean对象的性质(成员变量),比较遗憾的是:bean对象的性质这可以是String或者基本数据类型,username性质假设是一个Object,会显示什么?地址值
那么我们应该怎么办?
--------------------------------------------------------------------------------------------------------------------------------------------------
2 EL(expression language)表达式语言
语法${//content}
(1)EL的出现,个人以为可以不再使用前面几个动作, 我们可以这样替换
servlet中:
person user=new person();user.setName("xiaoming"); request.setAttribute("p",user);
request.setAttribute("xx","hello EL");
jsp中接收:
${p.username} //username是person的性质
${xx}//hello EL,简单吧!
(2)属性(Javabean实例)中性质也是对象怎么办
假设上面username是一个对象(有个a性质 a="xin"),那么${p.username.a}//得到xin
从上面可以看出,EL随随便便搞定啊
3 EL中的二个重要的操作符
(1).操作符
. 有二种格式(没有第三种)
map.key
javabean.property
说明:右边必须是合法的标识符(和定义变量同理),比如:map集合中有一个key="1",map.1是错误的,不合法。
使用:jsp接受的一般都是javabean数据或者“数据包”(集合,数组)。“.”可以处理的是Javabean和map,但list集合和一般的数组他是处理不了。后面还有一个[]操作符,功能更加多。由于jsp处理的数据map和Javabean较多,“.”简单实用,所以EL中用的频率很高
(2)[]操作符
"."可以做的事情,[]都可以完成。"."比较简便,可以使用"."尽量使用(个人喜好)。[]操作符处理下面几种“.”没完成的操作
key不是合法标识符;${map["1"]}没问题
list和数组集合,${arrayList["name"] }
注意:[]里面获取要使用" "符号,也不要使用";"符号结束
4 内置对象
(1)有哪些对象
第一类: requestScope,pageScope,sessionScope,applicationScrope -- 作用域属性的map
第二类:param,paramVlaues -- 请求参数的map
第三类:cookie --cookie的map
第四类:initParam-- 上下文初始化参数的map
第五类:pageContext --Javabean对象的一个引用。
简单说一下: 所谓"[b][b]请求参数的map[/b]",就是把所有的请求参数保存在这个map集合中。[/b]
(2)一个例子:
在servlet中:
request.setAttibute("attri","12");
在jsp中 ${attri}就直接拿到值12;
你会不会这么想?session,servletContext的属性这么获取?
执行${attri}时,按顺序在 [b]pageScope,[b][b]requestScope,[/b]sessionScope,applicationScrope属性中找。 意思就是: session,servletContent(application)中的属性也一样获取。在这里${attri}效果等价于${[b][b][b]requestScope[/b][/b][/b].attri}[/b][/b]
(3)获取[b]session,servletContext属性[/b]
[b]$[b]{sessionScope.property} [b]$[b]{[b][b]applicationScrope[/b].proterty[/b]}[/b][/b][/b][/b]
[b] (4)现在仔细看看前面内置对象的介绍,你就会使用了。[/b]
[b] 5 EL函数---省略[/b]
[b] --------------------------------------------------------------------------------------------------------------------------------------[/b]
EL自然不止这些,不过上面介绍的是常用的。发现没,EL主要用来获取数据的。Java中if,while,for怎么办?答案就jstl中
在实际开发中web设计人员很可能不太懂Java语言,而在jsp中Java作为脚本使用,这样就造成不便。我们应该使用一些web设计人员容易接受的"脚本",javaweb2.0就出现了EL,JSTE来替换java脚本(srciptlet,声明等)。
1 jsp动作元素
(1) <jsp:useBean id="p" type="person" class="person" scope="request"/>
id:属性名;type:id类型 ; class:bean对象类型; scope:属性作用域
这个标准动作转换成servlet是什么样子的?
person p=null;//person是type属性对应的类型。 p是 id p= (person)request.getAttribute("p");//判断这个id存不存在,(person)->type类型 if(p==null){ //为空的话,设置一个id对应的属性 p=request.setAttribute("p",new person());//new person()是class对应类型 }
结论:id就是一个实例的引用(bean),通过id可获取性质(成员变量),要知道bean有getXX(),setXX();
(2) <jsp:setProperty name="p" property="username" vlaues="xiaoming"/>//设置属性值,name是useBean的id;
(3)<jsp:getProperty name="p" property="uername"/>//获取username属性值xiaoming
这几个有什么用?
接收servlet中的bean,在jsp中获取bean对象的性质(成员变量),比较遗憾的是:bean对象的性质这可以是String或者基本数据类型,username性质假设是一个Object,会显示什么?地址值
那么我们应该怎么办?
--------------------------------------------------------------------------------------------------------------------------------------------------
2 EL(expression language)表达式语言
语法${//content}
(1)EL的出现,个人以为可以不再使用前面几个动作, 我们可以这样替换
servlet中:
person user=new person();user.setName("xiaoming"); request.setAttribute("p",user);
request.setAttribute("xx","hello EL");
jsp中接收:
${p.username} //username是person的性质
${xx}//hello EL,简单吧!
(2)属性(Javabean实例)中性质也是对象怎么办
假设上面username是一个对象(有个a性质 a="xin"),那么${p.username.a}//得到xin
从上面可以看出,EL随随便便搞定啊
3 EL中的二个重要的操作符
(1).操作符
. 有二种格式(没有第三种)
map.key
javabean.property
说明:右边必须是合法的标识符(和定义变量同理),比如:map集合中有一个key="1",map.1是错误的,不合法。
使用:jsp接受的一般都是javabean数据或者“数据包”(集合,数组)。“.”可以处理的是Javabean和map,但list集合和一般的数组他是处理不了。后面还有一个[]操作符,功能更加多。由于jsp处理的数据map和Javabean较多,“.”简单实用,所以EL中用的频率很高
(2)[]操作符
"."可以做的事情,[]都可以完成。"."比较简便,可以使用"."尽量使用(个人喜好)。[]操作符处理下面几种“.”没完成的操作
key不是合法标识符;${map["1"]}没问题
list和数组集合,${arrayList["name"] }
注意:[]里面获取要使用" "符号,也不要使用";"符号结束
4 内置对象
(1)有哪些对象
第一类: requestScope,pageScope,sessionScope,applicationScrope -- 作用域属性的map
第二类:param,paramVlaues -- 请求参数的map
第三类:cookie --cookie的map
第四类:initParam-- 上下文初始化参数的map
第五类:pageContext --Javabean对象的一个引用。
简单说一下: 所谓"[b][b]请求参数的map[/b]",就是把所有的请求参数保存在这个map集合中。[/b]
(2)一个例子:
在servlet中:
request.setAttibute("attri","12");
在jsp中 ${attri}就直接拿到值12;
你会不会这么想?session,servletContext的属性这么获取?
执行${attri}时,按顺序在 [b]pageScope,[b][b]requestScope,[/b]sessionScope,applicationScrope属性中找。 意思就是: session,servletContent(application)中的属性也一样获取。在这里${attri}效果等价于${[b][b][b]requestScope[/b][/b][/b].attri}[/b][/b]
(3)获取[b]session,servletContext属性[/b]
[b]$[b]{sessionScope.property} [b]$[b]{[b][b]applicationScrope[/b].proterty[/b]}[/b][/b][/b][/b]
[b] (4)现在仔细看看前面内置对象的介绍,你就会使用了。[/b]
[b] 5 EL函数---省略[/b]
[b] --------------------------------------------------------------------------------------------------------------------------------------[/b]
EL自然不止这些,不过上面介绍的是常用的。发现没,EL主要用来获取数据的。Java中if,while,for怎么办?答案就jstl中
相关文章推荐
- jsp总结之脚本和动作
- jsp笔记整理(servlet&jstl&el&jsp标准动作)
- JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)
- jsp 指令元素、脚本元素、动作元素的区别
- JSP——页面三大部分(指令、脚本、动作组件)
- JSP 的脚本,指令,动作
- 关闭jsp脚本和el运算
- jsp 指令元素、脚本元素、动作元素
- 在JSP 脚本块中引用 EL 表达式变量
- JSP - JSP中的脚本、指令、动作和注释
- JSP中的脚本元素,指令和动作
- JSP——页面三大部分(指令、脚本、动作组件)
- JSP中的脚本、指令、动作和注释标识
- JSP基础总结(运行机制、脚本元素、指令元素、动作元素)
- JSP入门第二章——Jsp语法之脚本、指令、动作元素
- JSP中的脚本、指令、动作和注释标识
- JSP(2)jsp语法之指令元素、脚本元素、动作元素forward、注释方法
- JSP脚本中9大内置对象和7个动作指令
- js中使用jsp脚本和el
- JSP动作元素详解(俗称小脚本)