本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.

**转载请注明 出自 : luogg的博客园 ** 谢谢配合!

day08 EL JSTL

EL表达式

语法:${}

获取域中对象的值

  1. <%
  2. request.setAttribute("name", "小花");
  3. session.setAttribute("name", "小傻");
  4. pageContext.setAttribute("name", "小凤");//按照最小的输出
  5. application.setAttribute("name", "小四");
  6. request.setAttribute("name.name","小花花");
  7. %>
  8. ${name }//名字相同情况,输出作用范围最小的,pageContext
  9. ${pageScope.name }
  10. ${requestScope.name }
  11. ${sessionScope.name }
  12. ${applicationScope.name}

域中数组的值

  1. <%
  2. String [] arrs = {"美美","波波","东东","名名"};
  3. request.setAttribute("arrs", arrs);
  4. %>
  5. ${ arrs[2] }//东东

域中集合的值

  1. <%
  2. List<String> list = new ArrayList<String>();
  3. list.add("美美");
  4. list.add("小凤");
  5. list.add("芙蓉");
  6. request.setAttribute("list", list);
  7. %>
  8. ${ list[1] }//小凤

域中Map集合的值

  1. <%
  2. Map<String,String> map = new HashMap<String,String>();
  3. map.put("aa", "美美");
  4. map.put("bb", "小凤");
  5. request.setAttribute("map", map);
  6. %>
  7. ${ map.bb }//小凤

域中集合有对象或者Bean的值

  1. <%
  2. List<User2> uList = new ArrayList<User2>();
  3. uList.add(new User2("banzhang","123"));
  4. uList.add(new User2("美美","abc"));
  5. request.setAttribute("uList", uList);
  6. %>
  7. ${ uList[1].username }
  8. ===========================
  9. List<EmpBean> list = empDao.showByPage(1, searchBean);
  10. request.setAttribute("list", list);
  11. ${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="&gt${list[1] }&lt" escapeXml="true">找不到</c:out>

defalut可以写在标签内部,也可以写在两个标签中间.

2.<c:set>

  1. 1
  2. <c:set value="花花" var="name" scope="request"></c:set>
  3. <c:out value="${requestScope.name }"></c:out>
  4. 2
  5. <%UserBean userBean = new UserBean();
  6. request.setAttribute("userBean", userBean); %>
  7. <c:set target="${userBean }" property="loginName" value="美美"></c:set>
  8. <c:out value="${userBean.loginName }"></c:out>
  9. 3
  10. <%Map<String,String> map = new HashMap<String,String>();
  11. //map.put("第一", "小王");
  12. //map.put("第二", "小凤");
  13. request.setAttribute("map", map);
  14. %>
  15. <c:set target="${map }" property="name" value="丽丽"></c:set>
  16. <c:out value="${map.name }"></c:out>//丽丽
  17. 4彻底在jsp中拜托java代码
  18. <jsp:useBean id="userBean" class="com.luogg.bean.UserBean"></jsp:useBean>
  19. <c:set target="${userBean }" property="loginName">花花</c:set>
  20. <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

  1. <c:set value="27" var="age"></c:set>
  2. 1.if的练习
  3. <c:if test="${age>25 }">
  4. <c:out value="还很年轻"></c:out>//还很年轻
  5. </c:if>
  6. 2.choose的练习
  7. <c:choose>
  8. <c:when test="${age>0 && age<25 }">
  9. <c:out value="还很年轻"></c:out>
  10. </c:when>
  11. <c:when test="${age>25 && age<40}">
  12. <c:out value="不怎么年轻了"></c:out>//不怎么年轻了
  13. </c:when>
  14. <c:otherwise>
  15. 嗯...
  16. </c:otherwise>
  17. </c:choose>

4.迭代标签:foreach

var 参数名字

items将要迭代的集合

varStatus表示迭代的状态,可以访问迭代自身的状态

begin end step迭代步长

  1. 1.集合的迭代
  2. <!--花花 小丽 小凤-->
  3. <%
  4. List<String> list = new ArrayList<String>();
  5. list.add("花花");
  6. list.add("小丽");
  7. list.add("小凤");
  8. request.setAttribute("list", list);
  9. %>
  10. <c:forEach items="${requestScope.list }" var="iteror">
  11. ${iteror }
  12. </c:forEach>
  13. 2.迭代Bean,返回 `List<EmpBean>`
  14. <c:forEach items="${list }" var="EmpBean">
  15. <td>${EmpBean.empID}</td>
  16. <td>${EmpBean.firstName}</td>
  17. </c:forEach>
  18. 3.foreach可以作为for循环
  19. <!--1 2 3 4 5 6 7 8 9 10-->
  20. <c:forEach begin="1" end="10" step="1" var="i">
  21. ${i }
  22. </c:forEach>
  23. 4.foreach可以获取迭代自身的状态,比如获取到此次迭代的索引,已迭代的数量,是否第一个迭代对象,是否最后一个迭代对象。
  24. <!--0 花花 1 true false; 1 小丽 2 false false; 2 小凤 3 false true; -->
  25. <%
  26. List<String> list = new ArrayList<String>();
  27. list.add("花花");
  28. list.add("小丽");
  29. list.add("小凤");
  30. request.setAttribute("list", list);
  31. %>
  32. <c:forEach items="${list }" var="list" varStatus="id">
  33. ${id.index } 迭代到哪个
  34. ${list } 跌倒的元素
  35. ${id.count } 迭代次数
  36. ${id.first } 是否是第一个
  37. ${id.last }; 是否是最后一个

JavaWeb_day08_EL JSTL的更多相关文章

  1. JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

  2. JSTL标签 参考手册

    前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...

  3. java web学习总结(三十) -------------------JSTL表达式

    一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...

  4. [Java] JSP笔记 - EL、JSTL 常用标签

    一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...

  5. JSTL 操作符

    el表达式的取值默认顺序:     pageScope  requestScope  sessionScope  applicationScope     结构,采用.导航,也称为存取器   ${us ...

  6. JSP页面JSTL提供的函数标签EL表达式操作字符串的方法

    首先在jsp页面导入标签<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions&quo ...

  7. JSTL标签库

    JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大 ...

  8. 重温JSP学习笔记--与日期数字格式化有关的jstl标签库

    上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...

  9. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

随机推荐

  1. PhpStorm和WAMP配置调试参数,问题描述Error. Interpreter is not specified or invalid. Press “Fix” to edit your project configuration.

    PhpStorm和WAMP配置调试参数 问题描述: Error. Interpreter is not specified or invalid. Press “Fix” to edit your p ...

  2. 设计模式C#合集--工厂方法模式

    简单工厂,代码: public interface ISpeak { public void Say(); } public class Hello : ISpeak { public void Sa ...

  3. trigger事件模拟

    事件模拟trigger 在操作DOM元素中,大多数事件都是用户必须操作才会触发事件,但有时,需要模拟用户的操作,来达到效果. 需求:页面初始化时触发搜索事件并获取input控件值,并打印输出(效果图如 ...

  4. pycharm2016.3.1激活及汉化

    pycharm快捷键 PyCharm设置python新建文件指定编码为utf-8 Python | 设置PyCharm支持中文 0, 注册码 43B4A73YYJ-eyJsaWNlbnNlSWQiOi ...

  5. ola.hallengren的SQL Server维护脚本

    ola.hallengren的SQL Server维护脚本 下载地址 http://files.cnblogs.com/files/lyhabc/ola.hallengrenMaintenanceSo ...

  6. XSS 前端防火墙 —— 无懈可击的钩子

    昨天尝试了一系列的可疑模块拦截试验,尽管最终的方案还存在着一些兼容性问题,但大体思路已经明确了: 静态模块:使用 MutationObserver 扫描. 动态模块:通过 API 钩子来拦截路径属性. ...

  7. 运用Mono.Cecil 反射读取.NET程序集元数据

    CLR自带的反射机智和API可以很轻松的读取.NET程序集信息,但是不能对程序集进行修改.CLR提供的是只读的API,但是开源项目Mono.Cecil不仅仅可以读取.NET程序集的元数据,还可以进行修 ...

  8. mono for android 获取手机照片或拍照并裁剪保存

    axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  9. MyBatis4:动态SQL

    什么是动态SQL MyBatis的一个强大特性之一通常是它的动态SQL能力.如果你有使用JDBC或其他相似框架的经验,你就明白条件串联SQL字符串在一起是多么地痛苦,确保不能忘了空格或者在列表的最后的 ...

  10. MongoDB与PostgresQL无责任初步测试

    PostgresQL一秒能插入多少条记录,MongoDB呢?读取的情况又如何?我写了一些简单的程序,得出了一些简单的数据,贴在这里分享,继续往下阅读前请注意下本文标题中的“无责任”,这表示此测试结果不 ...