EL表达式各种用法(原创笔记)

El常规用法:                2016年5月4日

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

.和[]等效 后者主要考虑到特殊符号的参数和动态获取
${sessionScope.name}=${sessionScope["name"]}
${sessionScope.list[n]}
随意一个变量,可从当前页面寻找,page找不到,就会Request、session、application范围寻找
jsp中内置对象名称 El中
page pageScope
request requestScope
session sessionScope
application applicationScope
${范围.变量名} 取出范围内变量的值

El隐含对象

pageContext javax.servlet.ServletContext表示JSP的pageContext
pageScope page范围的属性名称所对应的值
request requestScope范围的属性名称所对应的值
session sessionScope范围的属性名称所对应的值
application applicationScope范围的属性名称所对应的值
param 同request.getParameter(String name)
paramValues 同getParameterValues(String name)回传数组
header 同request.getHeader(String name)返回String类型的值
headerValues 同request.getHeaders(String name)回传数组
cookie 同request.getCookies()
initParam 同request.getInitParameter(String name)


比较字符:

<||lt 小于
>||gt 大于
<=||le 小于等于
>=||ge 大于等于
==||eq 等于
!=||ne 不等于


13个标签,功能分四类
表达式控制标签:out、set、remove、catch
流程控制标签:if、choose、when、otherwise
循环标签:forEach、forTokens
URL操作标签:import、url、redirect


out


  <%String s="hellow"; 
    request.setAttribute("s", s);
  %>



set

<% User user=new User(); 
  request.setAttribute("user", user);
%>




remove

msg=


msg=


msg=

msg=null
msg=hellow
msg=null


catch




${error }


if


  真才出现啊

${name }


choose when otherwise

  <% session.setAttribute("score", 20); %>

不及格
及格
刚好及格



forEach

<% List list=new ArrayList(); 
     User u1=new User("s","d","f");
     User u2=new User("s","d","f");
     User u3=new User("s","d","f");
     User u4=new User("s","d","f");
     list.add(u1);
     list.add(u2);
     list.add(u3);
     list.add(u4);
     session.setAttribute("s", list);
  %>
//开始||结束||步长||状态属性
 
    ${s.uid }

    ${s.uname }

    ${s.upassword }

    输出行号(从0开始):${a.index }

    输出行号(从1开始):${a.count }

    当前迭代的项   :${a.current }

    判断当前项是否为第一项:${a.first }

    判断当前项是否为第一项:${a.last }

 

Map

  <% Map map=new HashMap();
     map.put("k1", "v1");
     map.put("k2", "v2");
     session.setAttribute("s", map);
  %>
 
    ${s.key }

    ${s.value }

 



forTokens

//值||分隔符||状态属性
 
  ${t }

  ${a.count }
 

 



import

//导入页面

  ${s }


url

//路径

ww


redirect

//重定向,一般和if一起使用
//直接同目录

context最初的地方/w
出现它时候需要以/开头、url也要以/开头、最终会去/w/1.jsp






EL函数标签:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>


fn:substring

<% session.setAttribute("w", "2006-11-12 11:22:22.0"); %>
原来得到的:${w}

截取得到的:${fn:substring(w, 0, 16)}
原来得到的:2006-11-12 11:22:22.0
截取得到的:2006-11-12 11:22


fn:length

  <% 
  String[] w={"w","d"};
  session.setAttribute("w", w); %>
原来得到的:${w[0]}、${w[1]}

数组的长度:${fn:length(w)}
原来得到的:w、d
截取得到的:2


fn:contains(string, substring)

<% session.setAttribute("w", "2006-11-12 11:22:22.0"); %>
原来得到的:${w}

判断得到的:${fn:contains(w, "2")}
原来得到的:2006-11-12 11:22:22.0
判断得到的:true


  <% session.setAttribute("w", "2006-11-12 11:22:22.0"); %>
原来得到的:${w}

判断得到的:${fn:contains(w, "9")}
原来得到的:2006-11-12 11:22:22.0
判断得到的:false


fn:containsIgnoreCase(string, substring)

假如参数string中包含参数substring(忽略大小写),返回true


fn:endsWith(string, suffix)

假如参数 string 以参数suffix结尾,返回true


fn:escapeXml(string)

将有非凡意义的XML (和HTML)转换为对应的XML character entity code,并返回


fn:indexOf(string, substring)

返回参数substring在参数string中第一次出现的位置


fn:join(array, separator)

将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。


fn:length(item)

返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。假如是String类型,返回值是String中的字符数。


fn:replace(string, before, after)

返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果


fn:split(string, separator)

返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素


fn:startsWith(string, prefix)

假如参数string以参数prefix开头,返回true


fn:substring(string, begin, end)

返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符


fn:substringAfter(string, substring)

返回参数substring在参数string中后面的那一部分字符串


fn:substringBefore(string, substring)

返回参数substring在参数string中前面的那一部分字符串


fn:toLowerCase(string)

将参数string所有的字符变为小写,并将其返回


fn:toUpperCase(string)

将参数string所有的字符变为大写,并将其返回


fn:trim(string)

去除参数string 首尾的空格,并将其返回


截取字符串!使用!
${ fn:substring( onebeans.info ,0,100)} ...
${ onebeans.info }




EL表达式语法: 
${ EL expression} 
其中: 
$表示EL表达式的开始。 
EL expression指定表达式。 


一、JSP EL表达式可用于如下几种方式。 

1 静态文本:包含EL表达式,其值在运行时计算出来。 
如: ${8+5} 


2 标准标签和自定义标签属性:帮助显示网页上的动态内容。 
JSP提供一些标准标签,等。自定义标签是由用户使用taglib指令 编写的。 
EL表达式可以作为一个值传递给上述标签的属性。表达式在运行时计算,结果值将作为属性值进行传递。 
如: 
<% 
pageContext.setAttribute("color","#ffccff"); 
%> 
 
7+8=${7+8} 
 


3 JavaBean与EL表达式:使用EL表达式可以简洁地读出JavaBean的属性值。 
传统的JSP通常使用如下方法访问JavaBean: 
 
<%=myBean.getName()%> 
EL表达式则简化为: 
${myBean.name} 


二、启用/禁用EL表达式 

<%@ page isELIgnored=”true|false” %> 
为true时,支持EL表达式计算。 
为false时,不支持EL表达式计算。 


三、变量 

JSP表达式${product}的计算结果与调用pageContext.findAttribute(“product”)一样,EL表达式 中的变量可以引用存储在标准范围(如:page request session application)中的属性。 


点运算符(.)和”[]”用于获取变量的值。 
如:a.identifier-b与expr-a[identifier-b]等价。 


四、隐式对象 

JSP隐式对象是一组标准的类。在JSP EL定义了如下隐式对象: 
1 pageContext:提供对页面属性的访问。通过pageContext对象可以访问和使用下列对象。 


2 request:表示接受的客户端的JSP页面请求。请求的信息可以使用request对象来访问。 如:${pageContext.request.contextPath}返回请求的上下文路径。 


3 param:返回将请求参数名映射至单个字符串值的值。如:${param[“name”]} 


4 paramValues:返回映射至客户端的请求参数的一组值。 


5 pageScope:返回页面范围的变量名,这些名称已映射至相应的值。 


6 requestScope:提供对请求对象的属性的访问权限。 


7 sessionScope:返回会话范围内的变量名。 


8 applicationScope: 返顺应用程序范围内抽变量名。 
五、文字常量 
JSP表达式语言定义了下列文字常量: 
1 布尔型:true或false。 
2 整型:与Java中的整型相同。 
3 浮点型:与Java中的浮点型相同。 
4 字符串型:用单引号或双引号引起。 
5 null:表示没有值。0和空字符串表示的不是null值。 




六、运算符 
点运算符(.)和”[]”用于获取变量的值。 
!或not                                布尔值取反 
empty                                 检查空值 
*                                          乘法 
/或div                                 除法 
%或mod                           求余数或取模 
+                                         加 
-                                          减 
<或lt                                  小于 
>或gt                                 大于 
<=或le                               小于等于 
>=或ge                             大于等于 
==或eq                             等于 
!=或ne                               不等于 
&&或and                          逻辑与 
||或 or                                逻辑或 
num1?num2:result        条件运算符 


=================================================================
[size=large]EL表达式 动态表格数据加序号 
 
${index.count} 
 


================================================================ 
定义页面变量,自增 
      
 
 
 
 
   
 
${fb.xmmc} 
 
 
${fb.sfbz} 
 
 
 
================================================================== 
格式化时间 
 
 


==================================================================== 
跨行 
 
1月 
 
===================================================================== 
 


 
     
  •  
    工作计划 
  •  
 


原创笔记。若有错误,请及时告知

你可能感兴趣的:(EL表达式,原创笔记)