JSP EL(Expression Language)表达式

1.EL的顶级对象:

Scope:pageScope,requestScope,sessionScope,applicationScope.

parameter:param,paramValues.

head:header,headerValues.

cookies.

initParam

pageContext,上面的都是映射,只有pageContext是实际的指向,其它的隐式对象多事MAP。

2.运算符:

算术运算符,+ - */(div),%(mod).

关系运算符,==(eg),!=(ne),<(lt),>(gt),<=(le)>=(ge).

逻辑运算符,&&(and),||(or),!(not)

验证运算符,empty,是空的意思,ex.参数的值不能为空

[]用于取数据,数组/list/map/bean属性访问操作符。这个玩意好像是更好的.点号。person.name等于person["name"]

3.表达式的格式,放在一个大括号里面去,前面加上万能的钱,如${}

4.内置对象的读取:

(1)四个范围,requestScope.xxx,相当于request.getAttribute("xxxx"),这个实际上只是一个map。sessionScope.xxx,pageScope.xxx,applicationScope.xxx.

(2)param.xxx获取参数,相当于request.getParameterValues()获取数组。

(3)cookie.xxx,相当于request.getCookies()返回的是个数组。cookie是默认创建的,如果不想创建page命令中cookie=false。写入cookie

Cookie cookie = new Cookie("username","whatIsJsp");
    cookie.setMaxAge(60);
    response.addCookie(cookie);


(4)header.xxx 不太常用的,但是分析HTTP协议的时候比较好用。

(5)headValues.xxx 获取request,session,application,out;${abc},相当于pageContext.find("abc")


5.POJO对象的获取:${pageScope.fool.name}<br/>    ${fool.bar.desc}

6.数组对象的获取:放对象,

int[] arry={1,2,3,4,5};
reqeust.setAttribute(“arry1’,arry);

取对象${requestScope.arry1[0]}     ${arry[1]}

7.MAP对象的获取:访对象,

Map map=new Hashmap();
  map.put(“one’,”123’);
  map.put(“two”,”234”);

取对象: ${sessionScope.map1.one}    ${map1.two}   ${map1['two']},这种写法是可以理解的,但是放在java在中,这个方法感觉上不太好理解。

8.学习EL表达式。

9.自己你扩展EL表达式:

(1)编写一个公共静态方法的Java类,这个方法必须是静态的,而且必须是公共的 ,这样才能被调用。

(2)编写一个标记库描述文件DTD,TLD文件的作用是建立java函数与调用的JSP之间的一个映射。函数的名字是可以不相同的,可以为自己的java函数起一个名字。

(3)在JSP中放置一个taglib指令,jsp中会告诉容器,让容器为这个jsp提供该前缀下的一耳光TAGLIB。

(4)使用EL调用你已经写好的函数,按照${prefis:name()}的形式去调用你的函数就可以了。

扩展一个得到MIN_VALUE-MAX_VALUE随机数的EL表达式


10.缺陷以及解决:如何进行条件循环。JSP标准标记库提供了条件或者循环。结合JSTL以及EL表达式就可以处理绝大多数的前端的逻辑了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值