1、EL是JSP内置的表达式语言。
2、EL表达式来读取四大域
3、JavaBean导航
1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
2 <%@ page import="domain.Employee,domain.Address" %>
3 <html>
4 <head>
5 <title>Title</title>
6 </head>
7 <body>
8 <%
9 Address address = new Address();
10 address.setCity("深圳");
11 address.setStreet("南山");
12
13 Employee emp = new Employee();
14 emp.setName("张三");
15 emp.setSalary(12312);
16 emp.setAddress(address);
17
18 request.setAttribute("emp",emp);
19 %>
20 <h3>使用el获取request域的emp</h3>
21 ${requestScope.emp.address.street}
22 <!-- request.getAttribute("emp").getAddress().getStreet--><br/>
23 ${emp.hehe}
24 </body>
25 </html>
1 package domain;
2 public class Employee {
3 private String name;
4 private double salary;
5 private Address address;
6
7 public String getName() { return name; }
8 public void setName(String name) { this.name = name; }
9 public double getSalary() { return salary; }
10 public void setSalary(double salary) { this.salary = salary; }
11 public Address getAddress() { return address; }
12 public void setAddress(Address address) { this.address = address; }
13 @Override
14 public String toString() {
15 return "Employee{" +
16 "name=‘" + name + ‘\‘‘ +
17 ", salary=" + salary +
18 ", address=" + address +
19 ‘}‘;
20 }
21 public String getHehe() { return "呵呵"; }
22 }
1 package domain;
2
3 public class Address {
4 private String city;
5 private String street;
6
7 public String getCity() { return city; }
8 public void setCity(String city) { this.city = city; }
9 public String getStreet() { return street; }
10 public void setStreet(String street) { this.street = street; }
11 @Override
12 public String toString() {
13 return "Address{" +
14 "city=‘" + city + ‘\‘‘ +
15 ", street=‘" + street + ‘\‘‘ +
16 ‘}‘;
17 }
18 }
4、EL可以输出的东西都11个内置对象中:其中10个是Map,不是map的是PageContext类型,一个顶9个。
<body>
<%-- map.key这是el的语法,map[‘key‘]也可以操作map --%>
${param.username}<br/>
${paramValues.hobby[0]}
${paramValues.hobby[1]}
</body>
<body> ${header[‘User-Agent‘]}<br/> </body>
<context-param> <param-name>xxx</param-name> <param-value>XXX</param-value> </context-param> <context-param> <param-name>yyy</param-name> <param-value>YYY</param-value> </context-param>
<body>
${initParam.xxx}
</body>
<body>
${cookie.JSESSIONID}<br/>
${cookie.JSESSIONID.name}<br/>
${cookie.JSESSIONID.value}<br/>
</body>
1 <body>
2 <!-- 获取项目名,无则为"/" -->
3 ${pageContext.request.contextPath}
4 <hr/>
5 <a href="${pageContext.request.contextPath}/el/a.jsp">点击这里</a>
6 <form action="${pageContext.request.contextPath}/cookie/a.jsp" method="post">
7 <input type="submit" value="xxx">
8 </form>
9 <hr/>
10 ${pageContext.session.id}
11 </body>
EL表达式 | 说明 | 描述 |
${pageContext.request.queryString} | pageContext.getRequest().getQueryString(); | 取得请求的参数字符串 |
${pageContext.request.requestURL} | pageContext.getRequest().getRequestURL(); | 取得请求的URL,但不包括请求之参数字符串 |
${pageContext.request.contextPath} | pageContext.getRequest().getContextPath(); | 服务的web application 的名称 |
${pageContext.request.method} | pageContext.getRequest().getMethod(); | 取得HTTP 的方法(GET、POST) |
${pageContext.request.protocol} | pageContext.getRequest().getProtocol(); | 取得使用的协议(HTTP/1.1、HTTP/1.0) |
${pageContext.request.remoteUser} | pageContext.getRequest().getRemoteUser(); | 取得用户名称 |
${pageContext.request.remoteAddr } | pageContext.getRequest().getRemoteAddr(); | 取得用户的IP 地址 |
${pageContext.session.new} | pageContext.getSession().isNew(); | 判断session 是否为新的 |
${pageContext.session.id} | pageContext.getSession().getId(); | 取得session 的ID |
${pageContext.servletContext.serverInfo} | pageContext.getServletContext().getServerInfo(); | 取得主机端的服务信息 |
5、EL函数库(由JSTL提供的)
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
${fn:contains("abc","a")}<!-- true -->
函数 | 描述 |
boolean contains(String input,String substring) | 测试输入的字符串是否包含指定的子串 |
boolean containsIgnoreCase(String input,String substring) | 测试输入的字符串是否包含指定的子串,大小写不敏感 |
int indexOf(String input,String substring) | 返回指定字符串在输入字符串中出现的位置 |
String toLowerCase(String input) | 将字符串中的字符转为小写 |
String toUpperCase(String input) | 将字符串中的字符转为大写 |
boolean startsWith(String input,String substring) | 测试输入字符串是否以指定的前缀开始 |
boolean endsWith(String input,String substring) | 测试输入的字符串是否以指定的后缀结尾 |
String substring(String input,int beginIndex,int endIndex) | 返回字符串的子集 |
String substringAfter(String input,String substring) | 返回字符串在指定子串之后的子集 |
String substringBefore(String input,String substring) | 返回字符串在指定子串之前的子集 |
String escapeXml(String input) | 跳过可以作为XML标记的字符("<"、">"、"&"、" ‘ "、“ " ”),即进行转义 |
String trim(String input) | 移除首尾的空白符 |
String replace(String input,String substringBefore,String substringAfter) | 将输入字符串中指定的位置替换为指定的字符串然后返回 |
String[] split(String input,String delimiters) | 将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回 |
int length(Object obj) | 返回字符串、数组、各种集合的长度 |
String join(String array[] ,String separator) | 将数组中的元素合成一个字符串然后输出 |
6、自定义函数库
①写一个java类,类中可以定义0~N个方法,但必须是static,而且有返回值的。
②在WEB-INF目录下创建一个tld文件
<function> <name>fun</name> <function-class>fn.MyFunction</function-class> <function-signature>java.lang.String fun()</function-signature> </function>
③在jsp页面中导入标签库
<%@ taglib prefix="it" uri="/WEB-INF/tlds/itcast.tld"%>
④在jsp页面中使用自定义的函数:${it:fun()}
原文:http://www.cnblogs.com/gdwkong/p/7631464.html