El表达式、Jstl
来源:互联网 发布:三国演义电视剧 知乎 编辑:程序博客网 时间:2024/06/06 18:52
1、EL表达式、使用的目的是尽可能的减少JSP网页中java代码的数量
1、要求使用Servlet2.4/JSP2.0的Container 。 为什么EL不建议使用》因为有些服务器容器版本低、不支持2.4 。2、EL可以向JSP页面输出动态内容。是对JSP中Java代码的补充。可以输出: 1. 静态内容 2. 作用域对象内容 3. 隐式对象内容
2、JSP EL语言定义
EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能。脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素。它们通常用于对象操作以及执行那些影响所生成内容的计算。JSP 2.0 将 EL 表达式添加为一种脚本编制元素。1、EL表达式的语法。 ${expression} ${"Hello world"} //输出字符串常量 ${str} //输出字符串变量str的值 ${3 + 2} //输出3+2的结果 ${user.name} //输出user对象的name属性, 访问对象user的getName()方法以得到name成员的值 ${user["name"]} //同上 ${sessionScope["user"].name} //同上 ${list[1]} //访问list对象的第二项。 ${map["key"]} //访问map指定键的值。2、“[]”与“.”运算符 EL表达式提供“.”和“[]”两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如“.”或“?”等并非字母或数字的符号时就一定要使用“[]”。 ${user.My-Name}应当改为${user["My-Name"] } 注意:“[]”可以访问集合或者数组的元素、Bean属性。3、EL中的有效表达式(有效表达式可以包含文字、操作符、变量(对象引用)调用) boolean true 、false Integer 与Java类似。可以包含任何正数或负数、例如24、-45、567 float 与java类似。可以包含任何正的或负的浮点数、例如 -1.8E 、-45 、-4.567 String 任何由单引号或双引号限定的字符串。对于单引号、双引号和反斜杠,使用反斜杠字符作为转义序列。必须注 意,如果在字符串两端使用双引号,则单引号不需要转义。 null null4、变量、对象的引用 EL表达式存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为没有指定哪一个范围的username,所以它会依序从page、request、session、application范围查找。假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。5、隐式对象。 一:与范围有关的隐式对象 pageScope使用范围:当前页面 requestScope使用范围:当前请求 sessionScope使用范围:当前会话 applicationScope使用范围:服务器启动到结束 例如:要取得session中储存一个属性username的值。 session.getAttribute("username"); 取得username的值 在EL中: ${sessionScope.username} 二:与输入有关的隐式对象 param:请求中传递的是单个值 ${param.name} paramValues :请求中传递的是数组或多个值 ${paramValues.name} 三:其他隐式对象。 cookie :读取保存在cookie 中的值 header和headerValues:储存用户浏览器和服务端用来沟通的数据 initParam:取得设定web站点的环境参数 pageContext:取得其他有关用户要求或页面的详细信息 注意: 取得请求的参数字符串:${pageContext.request.queryString}<br/> 取得请求的URL,但不包括请求其参数字符串:${pageContext.request.requestURL}<br/> 服务的web application的名称:${pageContext.request.contextPath}<br/> 取得HTTP的方法(GET、POST):${pageContext.request.method}<br/> 取得使用的协议(HTTP/1.1、HTTP/1.0):${pageContext.request.protocol}<br/> 取得用户的IP地址:${pageContext.request.remoteAddr }<br/> 取得session的ID:${pageContext.session.id}<br/> 取得主机端的服务信息:${pageContext.servletContext.serverInfo}<br/>
3、JSTL 。JSTL由四个定制标签库(core、format、xml 和 sql)组成。
- core 标签库
- format 标签库定义了用来格式化数据(尤其是数字和日期)的操作。它还支持使用本地化资源束进行 JSP 页面的国际化。
- xml 库包含一些标签,这些标签用来操作通过 XML 表示的数据。
- sql 库定义了用来查询关系数据库的操作。
一:表达式操作包括四个标签:
<c:out> 在JSP中显示数据 类似于<%=%> 或${ }语法:1、<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />2、<c:out value="value" [escapeXml="{true|false}"]> default value </c:out> <c:set> <c:set>主要用来将变量储存至JSP范围中或是JavaBean的属性中。语法:1、<c:set value="value" var="varName" [scope="{ page|request|session|application }"]/>2、<c:set var="varName" [scope="{ page|request|session|application }"]> … 本体内容 </c:set> <c:remove> 用来移除变量 1、<c:remove var="varName" [scope="{ page|request|session|application }"] /><c:catch> <c:catch var="error_message">
二:流程控制分类中包含标签。
用途就和我们一般在程序中用的if一样
语法:
1、<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/> 2、<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]> 本体内容 </c:if><c:choose> 本身只当做 <c:when> 和 <c:otherwise> 的父标签 <c:choose> : <c:when> </c:when> : <c:otherwise> </c:otherwise> : </c:choose> 注意: <c:choose>的本体内容只能有: 空白 1或多个 <c:when> 0或1个 <c:otherwise><c:when> 的用途就和我们一般在程序中用的when一样 语法:(test 如果表达式的结果为true,则执行本体内容,false则相反) <c:when test="testCondition" > 本体内容 </c:when> 注意:<c:when>必须有test属性,当test中的表达式结果为true时,则会执行本体内容;如果为false时,则不会执行 在同一个<c:choose>中时,<c:when>必须在 <c:otherwise> 之前 。<c:otherwise> 在同一个 <c:choose> 中,当所有 <c:when> 的条件都没有成立时,则执行 <c:otherwise> 的本体内容 语法: <c:otherwise> 本体内容 </c:otherwise> 注意:在同一个 <c:choose> 中时,<c:otherwise> 必须为最后一个标签 。<c:forEach>标签支持两种不同样式的迭代: 1、整数范围上的迭代(类似 Java 语言的 for 语句) <c:forEach var=“varName” varstatus=“varStatusName”begin=“begin” end=“end” step=“step”> body content </c:forEach> 示例: <%@ page contentType="text/html;charset=GB2312"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html><head><title>c:forEach</title></head> <body> <table> <tr><th>行号</th><th>数值</th><th>平方</th> </tr> <c:forEach var="x" begin="0" end="10" step="2" varStatus="status"> <tr> <td><c:out value="${status.count}" /></td> <td><c:out value="${x}" /></td> <td><c:out value="${x * x}" /></td> </tr> </c:forEach> </table> </body> </html> 2、集合上迭代(类似 Java 语言的 Iterator) <c:forEach var=“varName” items=“collection” varstatus=“varStatusName” begin=“begin” end=“end” step=“step”> body content </c:forEach> 示例: <%@ page contentType="text/html;charset=GB2312" import="java.util.*"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <title>c:forEach</title> </head> <body> <% List userList = new ArrayList(); userList.add("jack"); userList.add("green"); userList.add("lucy"); request.setAttribute("userList",userList); %> <c:forEach var="username" items="${userList}"> ${username}<br> </c:forEach> </body> </html> 注意:<c : foreach varStatus="status"> varStatus用来存储当前遍历计数相关信息、会将信息存储到status中。status变量包含4个属性:count index first last .<c:forTokens> 用来浏览一字符串中所有的成员,其成员是由定义符号(delimiters)所分隔的 语法: <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> 本体内容 </c:forTokens>三:JSTL包含三个与URL操作有关的标签,它们分别为 <c:import>--用来将其他文件的内容包含起来 语法: <c:import url="expression" context="expression" charEncoding="expression" var="name" scope="scope"> <c:param name="expression" value="expression"/> ... </c:import> <c:redirect>--网页的导向 可以将客户端的请求从一个JSP网页导向到其他文件 语法: <c:redirect url="expression" context="expression"> <c:param name="expression" value="expression"/> ... </c:redirect> <c:url>--url的产生
阅读全文
0 0
- EL表达式 + JSTL表达式
- jstl EL(表达式语言)
- JSTL-EL表达式
- JSTL-EL表达式
- JSTL详解--EL表达式
- JSTL-EL表达式
- JSTL详解---EL表达式
- jstl el表达式
- JSTL-EL表达式
- JSTL EL表达式语言
- JSTL-EL表达式
- JSTL详解--EL表达式
- el表达式和jstl
- JSTL-EL表达式
- JSTL详解--EL表达式
- EL和JSTL表达式
- EL表达式与JSTL
- el表达式与jstl
- 【18】javascript中闭包的工作原理
- Excel实战:时间转换、字符串拆分和多条件判断
- java并发多线程基础知识
- android运行时BUG
- 编译TensorFlow Android Camera Demo
- El表达式、Jstl
- mongodb 创建数据库
- Dubbo环境搭建
- 第3周项目2
- MySQL数据库应用-从入门到精通配套视频、PPT、安装包与教程
- JAVA 使用FREEMARKER制作EXCEL
- 火车票上的星号暗藏玄机
- NP-Hard
- makefile 使用总结(精)