Java_Web之JSTL和EL
今天学了JSTL和EL,替换了以前for循环,感觉代码越来越少了,十分方便。JSTL和EL密不可分。
一、什么是EL表达式?
什么是EL
EL即Expression Language(表达式语言)
EL的功能
替代JSP页面中的复杂代码
EL的语法
${ EL exprission }
${ bean.name } 或 ${ bean['name'] }
二、EL的特点
自动转换类型
EL得到某个数据时可以自动转换类型

EL运算符
运算符”[ ]”
运算符”.”
作用
获取对象属性 获取对象集合中的数据
在Session中保存了一个(list)集合users


什么是JSTL?
二、JSTL的环境搭建

JSTL标准标签库介绍

通用标签

条件标签

迭代标签


JSTL和EL案例
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; session.setAttribute("username","小明"); List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d"); request.setAttribute("aa",list); Map map = new HashMap();
map.put("name","admin");
map.put("pwd","adminpassword"); request.setAttribute("map",map); session.setAttribute("map",map); application.setAttribute("c","123456");
application.setAttribute("c","789"); entity.User user = new entity.User();
user.setUsername("aa");
user.setPassword("bb");
session.setAttribute("user",user); //request.getParameter();//------param:获取表单项
//request.getParameterValues();//------paramValues:获取多个表单项
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> </head> <body>
<!--
注意:
EL表达式默认范围:request
如果没有确定范围;那么EL表达式就会按照范围的顺序按个进行查找:request-session-page-appplication
直到遍历JSP9大内置对象找到相对应的值为止
-->
以前的方式: <%=session.getAttribute("username") %><br/>
EL表达式:${sessionScope.username }<br/>
${applicationScope.c }<br/>
EL表达式在request取出集合:${aa}<br/>
取出map集合:${map["name"] }<br/>
${map.pwd }<br/>
EL取出session中map集合:${sessionScope.map.name }<br/>
${sessionScope.user.username } <form action="success.jsp" method="post">
username:<input type="text" name="username" /><br/>
password:<input type="password" name="password" /><br/>
love:<input type="checkbox" name="love" value="a" />吃饭<br/>
<input type="checkbox" name="love" value="b" />睡觉<br/>
<input type="checkbox" name="love" value="c" />敲代码<br/>
<input type="submit" />
</form>
</body>
</html>
处理页
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String name = request.getParameter("username");
String[] love = request.getParameterValues("love"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'success.jsp' starting page</title> </head>
<!--
JSTL的出现是为了替代以往下载jsp页面中的java逻辑判断和选择判断语句
EL表达式的出现是为了替代以往的表达式
JSTL一般与EL表达式合作开发动态的jsp页面
-->
<%
//if(条件)
%>
<body>
<p>
<c:set var="abc" value="${99+1}" scope="session" />
输出值:<c:out value="${abc}"/>
删除值:<c:remove var="abc" scope="session" />
删除之后:<c:out value="${abc}" default="null" />
</p>
<c:if test="${1==1}" var="if1" >
是真的
</c:if>
<!--
empty:判断当前值是否为空null
如果为null则返回true
否则返回false
-->
<c:if test="${not empty null }" var="if2"></c:if>
<p>
输出if1结果:<c:out value="${if1}" /><br/>
输出if2结果:<c:out value="${if2}" /><br/>
</p>
用户名:${param.username }<br>
密 码:${param.password }<br>
love:${paramValues.love[0] },${paramValues.love[1] },${paramValues.love[2] }
长度:${fn:length(paramValues.love) } <div style="margin-top: 50px">
<%
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e"); request.setAttribute("list",list); %>
<table border="1">
<c:forEach items="${list}" var="m" varStatus="statu">
<tr><td>${m }=====${statu.index }</td></tr>
</c:forEach>
</table>
</div> </body>
</html>
Java_Web之JSTL和EL的更多相关文章
- JS中也可以使用JSTL和EL标签
//往上滑是调用分页 function Ajax(currPage, pageSize) { // ajax后台交互String currPage,String pageSize var el, Pl ...
- JSTL和EL
JSTL和EL 1.EL表达式总是放在大括号里,而且前面有一个美元符前缀. person.name2.相似点:(1).都可以让我们在静态内蓉中插入动态信息.EL:室外温度是{emp}度 JSP:室外温 ...
- JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总
一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出. 1,JSTL标签总结: a).JSTL标签有什么用? JSTL是由JCP(Java Commu ...
- JSTL、EL、ONGL、Struts标签的区别与使用
一.JSTL 来源 我们使用JSP开发信息展现非常方便,也可嵌入java代码用来实现相关逻辑,但同样带来了很多问题: jsp维护难度增加 出事提示不明确,不容易提示 分工不明确等 解决上面的问题可以 ...
- <Chapter 2>2-2-2-1.介绍JSPs,JSTL,和EL(Introducing JSPs, JSTL, and EL)
现在,我们的时钟显示了UTC时区的时间.我们希望我们的应用可以让用户自定义时区,并且为将来的访问记住用户的偏好.为了做到这一点,我们使用Google帐户来识别哪个用户正在使用这个应用. 在我们深入了解 ...
- JSTL与EL之间的千丝万缕
一.关于JSTL和EL: 什么是JSTL? JSTL( JSP Standard Tag Library)是JSP标准 标签库,由apache实现. 什么是EL? EL(Expression Lang ...
- JSTL与EL常用标签(转)
JSTL与EL EL相关概念 JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段.所以我们先来学习EL表达式 EL主要用于查找作用域中的数据,然后对它们执行简单操作:它不是编程 ...
- JAVA学习JSTL与EL
一.基础 1.EL(Expression Language):为了使jsp写起来更加简单,提供了在Jsp中简化表达式的方法 2.JSTL:(JSP Standard Tag Library)jstl标 ...
- Java之旅(三)--- JSTL和EL表情
先给大家看一段JSP的代码.看看有什么感受? <% List<UsEL> usELList = pageModel.getList(); for (ItELator<Us ...
随机推荐
- Windows环境下flask+Apache+mod_wsgi部署及爬坑
文章目录 安装python Windows 环境使用virtualenv和virtualenvwrapper 安装mod_wsgi 安装nginx 安装Apache 遇到的坑 安装Apache遇到的坑 ...
- Codeforces 918C/917A - The Monster
传送门:http://codeforces.com/contest/918/problem/C 一个括弧串由字符‘(’和‘)’组成.一个正确的串可被递归地定义,定义如下: ①空串e是一个正确的串: ② ...
- Spring MVC-控制器(Controller)-可参数化视图控制器(Parameterizable View Controller )示例(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_parameterizableviewcontroller.htm 说明:示例基于 ...
- pt-osc改表导致数据不一致案例分析
2016-06-10 李丹 dba流浪猫 我们平时除了解决自己问题外,有时候也会协助圈内人士,进行一些故障排查,此案例就是帮某公司DBA进行的故障分析,因为比较典型,特分享一下,但仅仅是分享发生的过程 ...
- Linux - Virsh
virsh命令 suspend resume dumpxml KVM平台以存储池的形式对存储进行统一管理,所谓存储池能够理解为本地文件夹.通过远端磁盘阵列(iSCSI.NFS)分配过来磁盘或文件夹 ...
- web端log4net输出错误日志到mysql
1.引用log4net 2.配置log4net.config文件 <?xml version="1.0" encoding="utf-8" ?> & ...
- jQuery总结03
1 控制网页元素属性和样式的 jQuery 方法有哪些? 2 利用 jQuery 插入网页节点的方法有哪些? 3 jQuery 中绑定事件是什么,如何解除绑定? 4 jQuery 中的动画效果包括哪些 ...
- Oracle数据库版本号定期检视与升级的必要性分析
目 录 ▇1.ORACLE数据库版本号知识 ▇2.看看自己的数据库还有没有支持服务 ▇3.看11.2.0.3版本号各PSU的公布时间与解决BUG数量列表 ▇4.看11.2.0.4版本号各PSU的公布时 ...
- 最简单的C# Windows服务程序
通过这个示例了解如何通过C#如何创建一个Windows服务程序. 工具/原料 Vistual Studio 2015 c# 方法/步骤 打开vs2015 文件->新建项目->V ...
- 267C
二分+高斯消元 我们利用物理里的势能来表示,每个点有一个势能h,再由流量守恒可以得到deg[x]*h[x]=sigma(h[y]) 如果x,y之间有边.这个式子是由流量守恒推出的,所以当x=1或n是不 ...