EL表达式与自定义标签

${sessionScope.user.sex}
${sessionScope.user["sex"]}

page --> request --> session --> applicaion

page -- pageScope
request -- requestScope
Session -- sessionScope
application -- applicationScope

el表达式与<% %>是不能互用的。
<% int i=123;
    pageContext.setAttribute("i", i);
 %>
${i} //这样可交互数据了

${user.userName}
${user.address.city}
${user.friends[0]}

EL 访问集合属性
el不能访问set集合,因为它无序也无键。
<%
List list;
lisp.add("aaa");
lisp.add("bbb");

HashMap map;
map.put("1", "aaa");
map.put("2", "bbb");

String[] str = enw String[]{"111", "2222", "333"};
pageContext.setAttribute("list", list);
pageContext.setAttribute("map", map);
pageContext.setAttribute("arr", arr);
%>

${ pageScope.arr[0] }
${ pageScope.list[1] } //与数组一样
${ pageScope.map["key"] }

${ param.count+20 }
// count += 20;

${ param.name }
${ paramValues.name }

${ cookie.userCountry }
${ header["User_Agent"] }

-- initParam
<context-param>
 <param-name>webName</param-name>
 <param-value>Hi</param-value>
</context-param>
${ initParm.webName }

${ pageContext.request.contextPath }
${ pageContext.request.hostAddr}

${ 17/5 }  //3.4
${ 17 div 5 } //3.4

${ 5==5 } //true
${ param.password1 == param.password2 }

Empty 运算符
${ empty param.name }
${ A?B:C }

自定义标签
<%@ taglib uri="" prefix="" %>
-----------------------------------------------------
自定义标签:
tld --> 标签描述文件
1、符合XML规则,要有一个惟一的根
<taglib>
</taglib>
2、<short-name>
3、taglib中定义了一系列的tag
<my: tag>
tagClass 指定了当前标签的处理类,要写带包名的类名
content-type:指定了标签的体是有还是没有
empty表示有,JSP表示有
定义一系列的attribute,其中又包括name,required,是否接收EL表达式

在JSp中引入tld
方式一:<%@ taglib uri="/WEB-INF/xx.tld" prefix="c"%>

处理类:
1.需要继承TagSupport, BodyTagSupport
2.doStartTag(),doEndTag(),doAfterBody()
由容器解析到相应标签位置时会自动调用
返回值:EVAL_BODY_INCLUDE,SKIP_BODY,EVAL_BODY_AGAIN,EVAL_PAGE,SKIP_PAGE
在标签里有属性时,在处理类里也要定义一个同名的属性.
至少要为该属性设置一个set方法.当解析到这里会自动调用set方法.
getParent();//获得父标签的对象.
getPreviousout();//获得上一层的输出流
getBodyContent();//得到的是一个流,可用getString()将其转化成字符串
-----------------------------------------------------------------------
BeanUtils 工具类
BeanUtils.getProperty(obj, property);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值