el表达式与标签库

EL有效表达式基础操作符

EL表达式内置对象


el表达式的四大作用域

<!-- 创建对象 id:变量名,class:对象名,scope:作用域    默认page-->
	<jsp:useBean id="user" class="lesson04.User" scope="page"></jsp:useBean>
	<!-- 设值 property:对象的属性名,name:对象变量名,value:赋值-->
	<jsp:setProperty property="name" name="user" value="小二"/>
	<jsp:setProperty property="age" name="user" value="4"/>
	
	<!-- 创建对象 id:变量名,class:对象名,scope:作用域-->
	<jsp:useBean id="user1" class="lesson04.User" scope="request"></jsp:useBean>
	<!-- 设值 property:对象的属性名,name:对象变量名,value:赋值-->
	<jsp:setProperty property="name" name="user1" value="小三"/>
	<jsp:setProperty property="age" name="user1" value="8"/>
	
	
	<!-- el表达式也拥有四个对应的内置对象 pageScope requestScope sessionScope applicationScope -->
	<!-- page -->
	${pageScope.user.name }---------${pageScope.user.age }<br/> 
	<!-- request -->
	${requestScope.user1.name }----------${requestScope.user1.age }<br/>
	
	
	<%
		//jsp内置对象 pageContext request session application
		//useBean的scope  page request session application
		//el表达式内置对象  pageScope requestScope  sessionScope applicationScope
			//el表达式内置对象实际上就是Map 只是填充了 通过setAtrribute()方法写入的键值对
			
		
		//如果不指定作用域对象  会从作用域最低的对象搜索 pageScope<requestScope<sessionScope<applicationScope
		//如果不指定域名对象  影响搜索的效率   建议加上
		pageContext.setAttribute("id", 1);
		request.setAttribute("id", 2);
		session.setAttribute("id", 3);
		application.setAttribute("id", 4);
	%>
	${sessionScope.id }<br/>
	
	
	<!-- el表达式提供了全局对象 pageContext 可以用于处理页面上任意的内置-->
	${pageContext.session.id }<br/><!-- 获取sessionID -->
	${pageContext.request.contextPath }<br/><!-- 获取上下文对象 -->



param:一般是从服务器传递结果到页面,在页面中取出服务器保存的值
<form>
		<input type='text' name="num1" value="${param.num1 }"/>+<input type='text' name="num2" value="${param.num2 }"/><input type='submit' value="="/>
		<input type='text' name="result" value="${param.num1+param.num2 }">
	</form>
效果





2.JSTL标签库

             JavaSE项目需要添加jstl的jar包

                       网上所搜下载jar包  点击打开链接

             maven项目所需依赖的jar包

<dependency>  
      <groupId>jstl</groupId>  
      <artifactId>jstl</artifactId>  
      <version>1.2</version>  
 </dependency>  

标记库名称

URI

前缀

说明

core

http://java.sun.com/jsp/jstl/core

c

核心功能实现,包括变量管理、迭代和条件判断等

I18N

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

操作XML

Fn

http://java.sun.com/jsp/jstl/functions

fn

常用函数库,包括String操作,集合类型操作等


引入标签库

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>


Core标记库内容



例如

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<!-- 引入自定义标签 -->
<%@taglib tagdir="/WEB-INF/tags" prefix="ex" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- core标签库 -->
	<!-- 1、定义变量  变量存储在四大作用域中  page request session application
		标签的属性 value 一般都支持el表达式计算
	
	 -->
	
	<c:set var="name" value="zs" scope="page"></c:set>
	${pageScope.name }

	<!-- 2、if语句 不支持else-->
	<c:set var="sal" value="20000" scope="page"></c:set>
	<c:if test="${pageScope.sal<=10000 }">低薪</c:if>
	<c:if test="${pageScope.sal>10000 }">高薪</c:if>
	
	<!-- 3、choose when otherwise    相当于if....else...-->
	<c:choose>
		<c:when test="${pageScope.sal<=10000 }">低薪</c:when>
		<c:when test="${pageScope.sal>10000 and pageScope.sal<=20000 }">中薪</c:when>
		<c:otherwise>高薪</c:otherwise>
	</c:choose>
	
	<!-- 4、循环 forEach -->
		<!-- for(int i=1;i<=10;i++){} -->
	<c:forEach var="i" begin="1" end="10" step="1">
		${pageScope.i }
	</c:forEach>
	<!-- foreach(){} -->
	<%
		String[] str=new String[]{"篮球","足球"};
		pageContext.setAttribute("str", str);
		
		List list=new ArrayList();
		list.add("羽毛球");
		list.add("排球");
		pageContext.setAttribute("myList", list);
	%>
	<c:forEach var="ste" items="${pageScope.myList }">
		${pageScope.ste }
	</c:forEach>
	
	<!-- 5、out输出内容  c:out标签能够对内容的特殊符号进行转译  
		escapeXml 默认值true 表示对html进行转译五风险   false和el表达式有风险
	
	-->
	<c:set var="tt" value="<font color=red>你好</font>"></c:set>
	<%-- ${pageScope.tt } --%>
	<c:out value="${pageScope.tt }" escapeXml="true"></c:out>
	
	
	
	<!-- 其他标签 -->
	<!-- 跳转 -->
	<%-- <c:redirect url="http://www.pan.com/jspLesson/lesson05work/db.jsp"></c:redirect> --%>
	<!-- catch 异常 -->
	<c:catch var="myEx">
		<% 
			String ss=null;
			ss.toString();
		%>
	</c:catch>
	${pageScope.myEx }
	
	
	
	
	<!-- 国际化,数据格式显示  -->
	<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
	<!-- formaDate 将日期类型转换成字符串 -->
	<fmt:formatDate value="${pageScope.date }" pattern="yyyy-MM-dd"/>
	<!-- parseDate 将字符串转换成日期类型 -->
	<fmt:parseDate value="2017/12/12" pattern="yyyy/MM/dd"></fmt:parseDate>
	
	<!-- 四舍五入    pattern="###.#" 保留的小数位-->
	<fmt:formatNumber value="123.56" pattern="###.#"></fmt:formatNumber>
	
	<!-- 国际化 -->
	<!-- 设值浏览器的locale对象 -->
	<fmt:setLocale value="${pageContext.request.locale }"/>
	<!-- 设置读取的资源文件的basename -->
	<fmt:setBundle basename="my"/>
	<!-- 读取资源文件的信息 -->
	<fmt:message key="hello"></fmt:message>
	
	
	<!-- 字符串 -->
	<!-- 去空格 -->
	${fn:trim('   hello world   ') }
	<!-- 包含 -->
	${fn:contains('nihao','i') }
	<!-- 把字符串以指定的字符拆分 -->
	<c:forEach var="ee" items="${fn:split('a,b,c',',') }">
		${pageScope.ee }
	</c:forEach>
	<!-- 是否已指定字符结尾 -->
	${fn:endsWith('dddd.txt', '.txt')}
	<!-- 是否以指定的字符开头 -->
	${fn:startsWith('你好', '你')}
	<!-- 在一个字符串中  查找指定的字符并返回所在的下标(下标从0开始) 未找到返回-1-->
	${fn:indexOf('hello','o')}
	<!-- 返回字符串的长度 -->
	${fn:length('dfdfdf')}
	<!-- 字符串替换 -->
	${fn:replace('a,b,c', ',', ';')}
	<!--  -->
	${fn:join(fn:split('a,b,c',',') ,';')}
	<!-- 截取字符串  包左不包右 -->
	${fn:substring('jdfldj', 0, 2)}
	<!-- 从左往右查找指定字符并截断 -->
	${fn:substringAfter('lfjglg', "f")}
	<!-- 从右往左查找指定字符并截断 -->
	${fn:substringBefore('lfjglg', "j")}
	<!-- 转小写 -->
	${fn:toLowerCase("DDDD")}
	<!-- 转大写 -->
	${fn:toUpperCase("aaaa")}
</body>
</html>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值