JSP EL
核心作用
减少2JSP页面中的java代码
方便jsp中代码的修改,也方便美工修改页面
例如:${10+10}
<h2>Hello,${user.name}</h2>
运算符
类型 |
定义 |
算术型 |
+、-、*、/=div、%=mod |
逻辑型 |
And=&&,or=|,!=not |
关系运算型 |
==、eq,!、ne,>、gt,、<=、le、>=、ge、<、lt、 |
条件型 |
A?b:c |
空 |
empty |
以上写代,后面的英文可以代替前面的符号 | |
${12 <= 14 }<Br/> ${(3>r) ||(b>3)} |
使用jspEl读取jababean属性
类型 |
示例 |
对应的调用方法 |
JavaBean |
${user.username} ${user["username"]} ${user['username']} |
user.getUsername() |
数组 |
${sport[1]} |
sport[1] |
List |
${address[2]} |
address.get(2) |
Map |
${phone.home} |
phone.get('hone') |
以上的方法都有三种写,我只写了前一个, |
JSP EL的内置对象
pageContext\pageScope\requestScope\sessionScope\applicastionScope
param\paramValues\header\headerValues\cookice\initParam
这里的内置对象不是jsp中的内置对象,而是El的内置对象
但是他们是只可以互换的
如
<%=session.getAttribute("phone")%>
等价于
${sessionScope.phone};
设定jsp不使用JSP EL
1,在jsp页面中加page(只在当前页)
<%@ page isElgnored="true"%>
2,在整个web应用中
<jsp-conifg>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>
在jsp中转义$符合
1,在前面加\--------\$
2,加单引号''--------'$'
出现的问题:
在jseEl中不法得到List,Map的值
定制标记库
概述
增加表现层的处理能力
减少jsp文件中的java代码
实例:运行时间
新建一个类(TimerTag)继承TagSupport
定义start,end属性
重写doStatrTag(),doEndTag()方法
private long start;
private long end;
@Override
public int doStartTag() throws JspException {、
//得到系统的时间
start=System.currentTimeMillis();
return EVAL_BODY_INCLUDE;
}
@Override
public int doEndTag() throws JspException {
end=System.currentTimeMillis()-start;
try {
JspWriter out=pageContext.getOut();
out.println("running time:"+end+"ms");
} catch (Exception e) {
throw new JspTagException(e);
}
return EVAL_PAGE;
}
在web-inf中创建tld文件
文件头在tomcat中的\webapps\examples\WEB-INF\jsp2得到
最终内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>A tag library timeel</description>
<!--这里的版本自己可以随便取-->
<tlib-version>1.0</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<!--这是将是要在jsp页面中要写的内容-->
<uri>/yds.com</uri>
<tag>
<description>outputs hell.oie</description>
<!--这是标签并没有-->
<name>timer</name>
<!--这里是自定标签的类-->
<tag-class>
- 默认分类(7)
- 随便聊聊(2)
- 专业文章(70)
- 网络编程(8)
- 闲清屋(7)
- awt和Sring(9)
- 集合(16)
- I/O编(13)
- b/S设计开发(10)
- 线程(12)
- Applet(1)
- Spring(5)
- ajax(1)
- 常用组件(1)
- struts(3)
- javaweb(14)
- jxl(1)
- soa(1)
- freemarker(1)
- log4j(3)
- 平台(4)
- js(1)
- sql(4)
- php(3)
- flex(1)
- 小小实例(4)
- jbpm(1)
- seo(1)
- 小小框架(3)
- 私人(0)
- debian(1)
- css(1)
- hibernate(2)
- C#天天进步(4)
- 数据库(1)
- 开源框架学习(1)
- kemoo:看看
- 变幻小子:过
- 拂晓晨曦:交流。。。
- 小K鸟:受教了,我也是用的这个东东,暂时没有问题,先不改了,不过还是获益匪浅,有机会交流一下哦,,,
- wtuaimmmm:var xmlhttp;<br /> function verify1(){<br /> ...
- 变幻小子:问10086就行