JavaWeb_day08_EL JSTL
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.
**转载请注明 出自 : luogg的博客园 ** 谢谢配合!
day08 EL JSTL
EL表达式
语法:${}
获取域中对象的值
<%
request.setAttribute("name", "小花");
session.setAttribute("name", "小傻");
pageContext.setAttribute("name", "小凤");//按照最小的输出
application.setAttribute("name", "小四");
request.setAttribute("name.name","小花花");
%>
${name }//名字相同情况,输出作用范围最小的,pageContext
${pageScope.name }
${requestScope.name }
${sessionScope.name }
${applicationScope.name}
域中数组的值
<%
String [] arrs = {"美美","波波","东东","名名"};
request.setAttribute("arrs", arrs);
%>
${ arrs[2] }//东东
域中集合的值
<%
List<String> list = new ArrayList<String>();
list.add("美美");
list.add("小凤");
list.add("芙蓉");
request.setAttribute("list", list);
%>
${ list[1] }//小凤
域中Map集合的值
<%
Map<String,String> map = new HashMap<String,String>();
map.put("aa", "美美");
map.put("bb", "小凤");
request.setAttribute("map", map);
%>
${ map.bb }//小凤
域中集合有对象或者Bean的值
<%
List<User2> uList = new ArrayList<User2>();
uList.add(new User2("banzhang","123"));
uList.add(new User2("美美","abc"));
request.setAttribute("uList", uList);
%>
${ uList[1].username }
===========================
List<EmpBean> list = empDao.showByPage(1, searchBean);
request.setAttribute("list", list);
${list[0].name }
执行运算
加减乘除 ${1+2}
关系运算 gt小于 lt大于 eq等于 ne不等于 ge大于等于 le小于等于
WEB开发中的对象
pageScope
requestScope
sessionScope
applicationScope
EL其他内置对象
param 获取单个请求参数,form表单提交过来的参数.${param.name }
paramValues 获取捆绑数组参数,form表单中input有多个输入并且name一样,${paramValues.password[1] }
header
headerValues
initParam 获取全局初始化参数
pageContext
JSTL
JSTL(JSP Standard Tag Library)JSP标准标签库,作用:和EL表达式一起 取代<% %>
版本:
1.0 1.1和1.2(区别不大)
1.0EL表达式没有纳入规范
1.1和1.2EL表达式纳入规范
步骤
1.下载jar包,导入到工程中
jstl.jar , standard.jar
2.导入jar包,引入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
JSTL标签
1.<c:out> 输出内容
属性 : value 输出的内容(常量或变量)
default:找不到value时候输出
escapeXml:默认是true,进行转义,false不转义,原样输出.
<c:out value=">${list[1] }<" escapeXml="true">找不到</c:out>
defalut可以写在标签内部,也可以写在两个标签中间.
2.<c:set>
1
<c:set value="花花" var="name" scope="request"></c:set>
<c:out value="${requestScope.name }"></c:out>
2
<%UserBean userBean = new UserBean();
request.setAttribute("userBean", userBean); %>
<c:set target="${userBean }" property="loginName" value="美美"></c:set>
<c:out value="${userBean.loginName }"></c:out>
3
<%Map<String,String> map = new HashMap<String,String>();
//map.put("第一", "小王");
//map.put("第二", "小凤");
request.setAttribute("map", map);
%>
<c:set target="${map }" property="name" value="丽丽"></c:set>
<c:out value="${map.name }"></c:out>//丽丽
4彻底在jsp中拜托java代码
<jsp:useBean id="userBean" class="com.luogg.bean.UserBean"></jsp:useBean>
<c:set target="${userBean }" property="loginName">花花</c:set>
<c:out value="${userBean.loginName} "></c:out>
set中的各个属性
value object 值
var String 表达value的属性
scope String var的有效范围
target String 设置的属性对象,必须是JavaBean或者Map对象
property Object target对象中的属性名
target给的是Bean,property就是Bean的属性名,给的是map,他就是key
3.判断标签:if,choose,when,otherwise
<c:set value="27" var="age"></c:set>
1.if的练习
<c:if test="${age>25 }">
<c:out value="还很年轻"></c:out>//还很年轻
</c:if>
2.choose的练习
<c:choose>
<c:when test="${age>0 && age<25 }">
<c:out value="还很年轻"></c:out>
</c:when>
<c:when test="${age>25 && age<40}">
<c:out value="不怎么年轻了"></c:out>//不怎么年轻了
</c:when>
<c:otherwise>
嗯...
</c:otherwise>
</c:choose>
4.迭代标签:foreach
var 参数名字
items将要迭代的集合
varStatus表示迭代的状态,可以访问迭代自身的状态
begin end step迭代步长
1.集合的迭代
<!--花花 小丽 小凤-->
<%
List<String> list = new ArrayList<String>();
list.add("花花");
list.add("小丽");
list.add("小凤");
request.setAttribute("list", list);
%>
<c:forEach items="${requestScope.list }" var="iteror">
${iteror }
</c:forEach>
2.迭代Bean,返回 `List<EmpBean>`
<c:forEach items="${list }" var="EmpBean">
<td>${EmpBean.empID}</td>
<td>${EmpBean.firstName}</td>
</c:forEach>
3.foreach可以作为for循环
<!--1 2 3 4 5 6 7 8 9 10-->
<c:forEach begin="1" end="10" step="1" var="i">
${i }
</c:forEach>
4.foreach可以获取迭代自身的状态,比如获取到此次迭代的索引,已迭代的数量,是否第一个迭代对象,是否最后一个迭代对象。
<!--0 花花 1 true false; 1 小丽 2 false false; 2 小凤 3 false true; -->
<%
List<String> list = new ArrayList<String>();
list.add("花花");
list.add("小丽");
list.add("小凤");
request.setAttribute("list", list);
%>
<c:forEach items="${list }" var="list" varStatus="id">
${id.index } 迭代到哪个
${list } 跌倒的元素
${id.count } 迭代次数
${id.first } 是否是第一个
${id.last }; 是否是最后一个
JavaWeb_day08_EL JSTL的更多相关文章
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- JSTL标签 参考手册
前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...
- java web学习总结(三十) -------------------JSTL表达式
一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...
- [Java] JSP笔记 - EL、JSTL 常用标签
一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...
- JSTL 操作符
el表达式的取值默认顺序: pageScope requestScope sessionScope applicationScope 结构,采用.导航,也称为存取器 ${us ...
- JSP页面JSTL提供的函数标签EL表达式操作字符串的方法
首先在jsp页面导入标签<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions&quo ...
- JSTL标签库
JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大 ...
- 重温JSP学习笔记--与日期数字格式化有关的jstl标签库
上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...
- 重温JSP学习笔记--JSTL标签库
以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...
随机推荐
- C#各种同步方法 lock, Monitor,Mutex, Semaphore, Interlocked, ReaderWriterLock,AutoResetEvent, ManualResetEvent
看下组织结构: System.Object System.MarshalByRefObject System.Threading.WaitHandle System.Threading.Mutex S ...
- 浅谈JSP中include指令与include动作标识的区别
JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...
- Linux学习笔记(一):常用命令
经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...
- .Net 初步学习笔记之一——.Net 平台与.Net FrameWork框架的关系
.Net 包含两部分 .Net平台 和.Net FrameWork 框架 1..Net FrameWork框架包含于.Net平台. .Net FrameWork提供环境和支撑保证.Net平台运行. 2 ...
- RCP:ISourceLocator翻译
org.eclipse.debug.core.model.ISourceLocator A source locator locates source elements for stack frame ...
- Java 开发主流 IDE 环境体验
前言 本来应该继续从 Oracle 官网搬砖的,但是随着示例代码越来越复杂,涉及的类库越来越多,使用 Vim 写 Java 代码就很力不从心了,是时候上 IDE 了.我最熟悉的 IDE 环境是 Ecl ...
- Spark 开发中遇到的一些问题
1.StackOverflowError 问题:简单代码记录 : for (day <- days){ rdd = rdd.union(sc.textFile(/path/to/day) ... ...
- float---浮动带来的影响与清除浮动带来的影响方法----在路上(20)
使用float会带来哪些影响: 脱标:无行级块级之分: 相互贴靠:若想之间有空隙可用margin与padding: 顶边对齐: 文字环绕: 当使用float后,子标签脱离父标签,父标签就会失去高度,此 ...
- PHP扩展-如何使用文件config.m4
config.m4文件用于指定正在开发的扩展在类unix系统下构建时支持的选项,指定此扩展需要哪些库以及哪些源文件:使用 GNU autoconf 语法编写.注意需要重新执行phpize,config ...
- 阿里云系列——6.给你的域名使用CDN加速(详细步骤+简单配置)
网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 进入管理页面:https://home.console.aliyun.com/ ...