JSP中的EL表达式和JSTL标签库
2016-09-12 02:42
260 查看
JSP中的EL表达式和JSTL标签库
一丶EL表达式
显示效果:
显示效果:
显示效果:
显示效果:
显示效果:
EL的使用:运算符
①模拟数据
<%
pageContext.setAttribute(“num1”, 10);
pageContext.setAttribute(“num2”, 20);
pageContext.setAttribute(“num3”, 30);
pageContext.setAttribute(“num4”, 40);
②算数运算符
+/-/*/除(/)div/求余:%(mod)
显示效果:
显示效果:
显示效果:
显示效果:
显示效果:
二丶JSTL标签库
概念:
JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。顾名思义,format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作。
显示效果:
test属性用于设置逻辑表达式;
var属性用于指定逻辑表达式中变量的名字;
scope属性用于指定var变量的作用范围,默认为page.
如果test的结果为true,那么标签将被执行,否则不执行
forEach标签:
显示效果:
var属性用于指将当前迭代到的元素保存到page域中的名称;
items属性用于指定将迭代的对象;
varStatus属性用于指定当前迭代状态信息的对象保存到page域中的名称;
varStatus属性包含的相关状态:count表示元素在集合中的序号,从1开始累加,
index表示当前元素在集合中的索引,从0开始,
first表示当前是否为集合的第一个元素,
last表示当前是否为集合的最后一个元素,
begin属性指定从第几个元素开始迭代;
end属性指迭代到对应的值;
step属性用于指定迭代的步长,就是每次增加的数量.
一丶EL表达式
EL表达式概念 在JSP开发中,为了获取Servlet域对象中存储的数据,经常需要些许多Java代码,这样会使得JSP页面混乱,难以维护,因此,在JSP2.0规范提供了EL表达式.EL(Expression Language),它是一种简单的数据访问语言.
什么是EL EL目的是使JSP写起来更加的简单,表达式语言灵感来源于ECMAScript和XPath表达式语言,它让JSP的代码更加简便. EL语法:${表达式} EL的使用 内置对象: ①作用域 内置对象名称:pageScope ,page作用域 内置对象名称:requestScope ,request作用域 内置对象名称:sessionScope ,session作用域 内置对象名称:applicationScope ,application作用域(servletContext) ②请求参数 param:获得一个参数 paramValues:获取一组参数 ③请求头 header:获得一个请求头 headerValues:获取一组请求头 ④JSP上下文对象 pageContext ⑤全局初始化参数 initParam ⑥cookie cookie EL的使用 EL的使用:获取数据 ①自定义的数据,必须放在作用域中 代码描述: ①获得字符串
<!--设置传入不同域中的参数--> <% pageContext.setAttribute("name", "pname"); request.setAttribute("name", "rname"); session.setAttribute("name", "sname"); application.setAttribute("name", "aname"); %> <!-- 获取 --> <h2>获取不同域中数据:</h2> ${pageScope.name }<br/> ${requestScope.name }<br/> ${sessionScope.name }<br/> ${applicationScope.name }
显示效果:
②获得数组
<h2>获取数组</h2> <% String[] str2 = {"abc","cde","fgh","hij"}; pageContext.setAttribute("str22", str2); %> ${str22 }<br/> ${str22[2] }
显示效果:
③获得List数据
<h2>获取List集合</h2> <% List<String> list = new ArrayList<String>(); list.add("abc1"); list.add("abc2"); list.add("abc3"); list.add("abc4"); pageContext.setAttribute("list1", list); %> ${list1 }<br/> ${list1[2] }
显示效果:
④获得Map<String,String>数据
<% Map<String,String> map = new HashMap<String,String>(); map.put("demo01", "ok01"); map.put("demo02", "ok02"); map.put("demo03", "ok03"); map.put("demo04", "ok04"); pageContext.setAttribute("map01", map); %> ${map01}<br/> ${map01.demo01 }<br/>
显示效果:
⑤获得Map<String,User>数据
<% Map<String,User> map = new HashMap<String,User>(); map.put("user01", new User("张三","123")); map.put("user02", new User("李四","456")); map.put("user03", new User("王五","789")); map.put("user04", new User("赵六","1234")); pageContext.setAttribute("map01", map); %> ${map01 }<br/> ${map01.user01 }<br/> ${map01.user02 }<br/> ${map01.user01.username }<br/> ${map01.user01.password }<br/> ${map01['user03'].username }
显示效果:
EL的使用:运算符
①模拟数据
<%
pageContext.setAttribute(“num1”, 10);
pageContext.setAttribute(“num2”, 20);
pageContext.setAttribute(“num3”, 30);
pageContext.setAttribute(“num4”, 40);
%>
②算数运算符
+/-/*/除(/)div/求余:%(mod)
<h2>算数运算符</h2> ${num1+num2 }<br/> ${num1-num2 }<br/> ${num1*num2 }<br/> ${num1/num2 }<br/><!-- div --> ${num1%num2 }<br/><!-- mod -->
显示效果:
③关系运算符 大于:>(gt),小于:<(lt),等于:==(eq),大于等于:>=(ge);小于等于:<=(le)
<h2>关系运算符</h2> ${num1<num2 }<__________>${num1 lt num2 }<br> ${num1>num2 }<__________>${num1 gt num2 }<br> ${num1<=num2 }<__________>${num1 le num2 }<br> ${num1>=num2 }<__________>${num1 ge num2 }<br> ${num1==num2 }<__________>${num1 eq num2 }
显示效果:
④逻辑运算符 与:&&,或:||,非:!
<h2>逻辑运算符</h2> ${num1<num2 && num2<num3 }<_________>${num1<num2 and num2<num3 }<br> ${num1<num2 || num2<num3 }<_________>${num1<num2 or num2<num3 }<br> ${!(num1<num2) }<_________>${not(num1<num2) }
显示效果:
⑤三元运算符 ${n1 < n2 ? "true" : "false"}
<h2>三元运算符</h2> ${num1>num2 ? "正确" : "错误" }
显示效果:
⑥empty运算符 对象是否为null 集合是否为null 字符串是否为null 代码演示:
<%
String str08=null;
pageContext.setAttribute("demo01",str08 );
pageContext.setAttribute("userrr", new User());
Map<String,String> map02 = new HashMap<String,String>();
map02.put("zyc", "good");
pageContext.setAttribute("map02", map02);
%>
字符串:${empty domo01}<br>
对象:${empty userrr }<br>
集合:${empty map02 }<br>
<%
String str08=null;
pageContext.setAttribute("demo01",str08 );
pageContext.setAttribute("userrr", new User());
Map<String,String> map02 = new HashMap<String,String>();
map02.put("zyc", "good");
pageContext.setAttribute("map02", map02);
%>
字符串:${empty domo01}<br>
对象:${empty userrr }<br>
集合:${empty map02 }<br>
显示效果:
二丶JSTL标签库
概念:
JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据,以及执行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL 的标记。顾名思义,format 标记库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。xml 库包含一些标记,这些标记用来操作通过 XML 表示的数据,而 sql 库定义了用来查询关系数据库的操作。
JSTL包含的标签库 Core http://java.sun.com/jsp/jstl/core 前缀:c 118N 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 JSTL使用步骤: ①导包 jstl.jar standard.jar ②引入标签库 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> prefix:前缀 ③使用格式 <c:类型 相关参数> </c:类型> Core标签库 out标签 <c:out value="ok"></c:out> value:输出的类容 if标签
<h2>if标签的使用</h2>
<!-- 进行计算${3>2},然后将值存入变量v,将变量v存放进HttpSession -->
<c:if test="${3>2 }" var="v" scope="session">
3是大于2的.
</c:if>
<hr/>
<c:set value="1" var="num" property="num"></c:set>
<c:if test="${num==1 }">
this is first login!!!
</c:if>
<hr/>
<%
User user = new User("张三","23");
pageContext.setAttribute("user", user);
%><c:if test="${empty user }">
您好没有登录,请登录!!!
</c:if>
<c:if test="${not empty user }">
${user.username },欢迎您!!!
</c:if>
显示效果:
test属性用于设置逻辑表达式;
var属性用于指定逻辑表达式中变量的名字;
scope属性用于指定var变量的作用范围,默认为page.
如果test的结果为true,那么标签将被执行,否则不执行
forEach标签:
<h2>foreach标签的使用</h2>
<%
int num = 10;
pageContext.setAttribute("num", num);
%><!-- begin="${num }" end="100" 从10到100 每个只赋给V,step="20"循环遍历是每次增加20个数,
varStatus="status"状态码可以看变化的次数等 -->
<c:forEach begin="${num }" end="100" var="v" step="20" varStatus="status">
${status.count } ${status.first } ${status.last } ${v }<br/>
</c:forEach>
显示效果:
var属性用于指将当前迭代到的元素保存到page域中的名称;
items属性用于指定将迭代的对象;
varStatus属性用于指定当前迭代状态信息的对象保存到page域中的名称;
varStatus属性包含的相关状态:count表示元素在集合中的序号,从1开始累加,
index表示当前元素在集合中的索引,从0开始,
first表示当前是否为集合的第一个元素,
last表示当前是否为集合的最后一个元素,
begin属性指定从第几个元素开始迭代;
end属性指迭代到对应的值;
step属性用于指定迭代的步长,就是每次增加的数量.
相关文章推荐
- JSP中JSTL提供的函数标签EL表达式操作字符串的方法
- Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL
- JSP和El表达式和JSTL标签库使用
- 笔记之jsp标签、EL表达式、JSTL标签、函数、自定义标签
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- JSTL标签(2)、EL表达式总结、Jsp标签总结
- jsp,el表达式,jstl标准标签库
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- jsp脚本、jsp标准动作、EL表达式、JSTL标签
- JSP和El表达式和JSTL标签库使用
- jsp页面写jstl标签和el表达式
- JSP常用标签——JSTL标签和EL表达式
- web笔记九:jsp脚本、jsp标准动作、EL表达式、JSTL标签
- 18、EL表达式、JSP标签、JSTL标签、自定义标签
- 【郭林专刊】JSP中JSTL提供的函数标签EL表达式操作字符串的方法
- JSP中JSTL提供的函数标签EL表达式操作字符串的方法
- JavaWeb12-JSP, EL表达式,JSTL标签
- 【郭林专刊】JSP中JSTL提供的函数标签EL表达式操作字符串的方法
- JSP常用标签——JSTL标签和EL表达式
- java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法