当前位置: 移动技术网 > IT编程>开发语言>Java > EL表达式和JSTL的使用

EL表达式和JSTL的使用

2018年11月30日  | 移动技术网IT编程  | 我要评论

一:el表达式

1.概述:在jsp开发中,为了获取servlet域对象中存储的数据,经常要写很多java代码,这样的做法会使jsp页面混乱,难以维护,为此,在jsp2.0规范中提供了el表达式。它是expression language的缩写。

2.语法:${表达式}

2.1内置对象:  

2.1.1获取指定域的对象:


<%--初始化数据-- %>
<%
pagecontext.setattribute("name", "pvalue");
request.setattribute("name", "rvalue");
session.setattribute("name","svalue");
application.setattribute("name", "avalue");
%>

<%--获取指定作用域的数据--%>
${pagescope.name }
${requestscope.name }
${sessionscope.name }
${applicationscope.name }

2.1.2请求参数

<%--
  param.xxx  对应 request.getparameter("xxx");
  paramvalues.xxx 对应 request.getparametervalues("xxx");
--%>
      
${param.username }
${paramvalues.hobby }<%--获得一组数据,使用数组 --%>
${paramvalues.hobby[1] }<%--如果是数组,可以使用下表 --%>

2.1.3pagecontext

jsp:<%=((httpservletrequest)pagecontext.getrequest()).getcontextpath() %>
el:${pagecontext.request.contextpath }

2.2使用el获得数据

2.2.1自定义数据,必须放在作用域

<% 
    string s = "black";    
%>

${s }  <%--无法获取,s不在域中 --%>

2.2.2获得字符串

<%
     string s = "black";
     pagecontext.setattribute("sss",s);
 %>

 ${sss}<br/>
 ${pagescope.sss }
<%这两个都可以获取到字符串“black”%>

2.2.3获得数组

<%
     string[] arr = {"a","b","c"};
     pagecontext.setattribute("arr",arr,pagecontext.request_scope);
 %>

${arr }
${arr[1]}
${arr[2] }

//上面的pagecontext.request_scope后面介绍

2.3

2.3.1

setattribute(string name,值,int scope):如果没有指定scope,该属性默认在page范围内,如:pagecontext.setattribute("page","hello");  

使用pagecontext将属性设置在request范围中pagecontext.setattribute("request2","hello" , pagecontext.request_scope);  

使用pagecontext将属性设置在session范围中pagecontext.setattribute("session2","hello" , pagecontext.session_scope); 

 使用pagecontext将属性设置在application范围中pagecontext.setattribute("app2","hello" , pagecontext.application_scope);    

2.3.2 getattribute(string name,int scope):取得指定范围内的name属性,

其中scope可以是如下4个值:

 pagecontext.page_scope:对应于page范围。 

  pagecontext.request_scope:对应于request范围。 

 pagecontext.session_scope:对应于session范围。 

 pagecontext.application_scope:对应于application范围。
3.el执行表达式

例如:

${1+1}

${empty user}

${user==null?true:false}

二:jstl

1.概述:

jstl(jsp standard tag library),jsp标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。jstl标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库

标签库

标签库的uri

前缀

core

http://java.sun.com/jsp/jstl/core

c

i18n

http://java.sun.com/jsp/jstl/fmt

fmt

sql

http://java.sun.com/jsp/jstl/sql

sql

xml

http://java.sun.com/jsp/jstl/xml

x

functions

http://java.sun.com/jsp/jstl/functions

fn

2.导入安装包:

从apache的网站下载jstl的jar包。进入        “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载    jstl的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的jstl安装包 进行解压,此时,在lib目录下可以看到两个jar文件,分别为jstl.jar和standard.jar。     其中,jstl.jar文件包含jstl规范中定义的接口和相关类,standard.jar文件包含用于    实现jstl的.class文件以及jstl中5个标签库描述符文件(tld)

 

使用jsp的taglib指令导入核心标签库

 3.一个简单的jsp文件

然后启动tomcat服务器,在地址栏输入地址访问test.jsp此时浏览器显示:

4.jstl核心库的常用标签

4.1   if标签:

<c:if test=””>     其中test是返回boolean的条件

如果visitcount==1判定为真,则浏览器页面打印:this is you first vist........!

4.2    foreach标签

4.2.1

for(int i=0;i<=5;i++){
    system.out.println(i);
}
<%--对应如下:--%> 
<c:foreach begin="0" end="5" var="i" > ${i }<br/> </c:foreach>

4.2.2

<%
    string[] fruits = {"apple","orange","grape","banana"};
    pagecontext.setattribute("f",fruits);
%>
<c:foreach var="name" items="<%=fruits %>">
    ${name }
</c:foreach>

items属性用于指定将要迭代的集合对象

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网