1.jsp标签: sun原生的,直接jsp使用
<jsp:include> -- 实现页面包含,动态包含
<jsp:include page="/index.jsp"/>
<jsp:forward> -- 请求转发
<jsp:param> -- 配合上面上面的两个标签使用,
<jsp:forward page="">
<jsp:param value="xxx" name="xxx"/>
</jsp:forward>

2.EL表达式:
Expresion language
出现的目的,取代jsp中的jsp脚本表达式 <%= java表达式>,发展后不限于此
${el表达式}

获取数据 ,不能遍历数据
注意:1 使用[]的地方都可以用点号替代,除了中括号是数字和特殊字符不能替代
${a[1]} != ${a.1}
${a["1.1"]} != ${a.1.1}
${a["name"]} == ${a.name}
2 在中括号中不用""引起来的变量,是执行“获取域中的变量的流程”

获取常量
字符串/数字/布尔变量, 直接写在el表达式中
${"获取常量"} ${199} ${true}

获取域中的变量
如果el中写的是一个变量的名,el会调用pageContext的findAttribute方法,在四大作用域中以对应
的名字找对应的属性值。 如果找不到,则不输出
<%
String name= "xxx";
pageContext.setAttribute("name", name);
%>
${name}

获取数组的数据
<%
String[] names = {"1","2","3","4"};
pageContext.setAttribute("names", names);
%>
${names[0]}

获取集合中的数据
<%
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
pageContext.setAttribute("list",list);
%>
${list[2]}

获取Map的数据
<%
Map<String,String> map= new HashMap();
map.put("name", "xx");
map.put("age", "xxx");
pageContext.setAttribute("map",map);
%>
${map["name"]}
${map.name}

获取java bean的属性
public class Person{
private int age;
public void set(int age);
public int get();
}
<%
Person p = new Person();
p.set(10);
pageContext.setAttribute("p",p);
%>
${p.age} 获取属性 == p.get();
<img src=${pageContext.request.contextPath}/1.jpg/>

执行运算
算数运算,如果有非数字 字符“1” 参与运算,将非数字转换为数字参与运算,“a”不能参与运算,会报错
+、-、*、/
${1+1} ${3-1}

逻辑运算 && || !
&& and , || or, ! not
${3>2 and 1<2} 显示false

比较运算 >,<,==,<=,>=,!=
> gt
< lt
>= ge
<= le
!= ne
== eq
${1==1} ${1 eq 1} 显示true
${1>3} 显示false

三元运算
3>2?10:100
${3>2?"yes":"no"}

empty运算
判断一个对象是否为null,字符串是否空字符串,集合为空?,域中没有属性?

<%
String str = "";
PageContext.setAttribute("str",str);
List list = new ArrayList();
PageContext.setAttribute("list ",list );
%>
${empty str} 显示true
${empty list} 显示true 集合没有任何东西 add后为false
${empty pageScope} false

获取常用开发对象
el 中内置了11个对象,可以直接使用
pageContext:可以获取jsp页面中的9大隐式对象

pageScope: page域中属性组成的map
requestScope:request域中属性组成的map
sessionScope:session域中属性组成的map
applicationScope:application域中属性组成的map

param:所有请求参数组成的Map<String,String>
paramValues:所有请求参数组成的Map<String,String[]>
?name=1&age=10&like=ball&like=game
${param.name} ${paramValues.like}

header:所有请求头组成的map<String,String>
headerValues:所有请求头组成的map<String,String[]>
${header["Accept-Language"]}

cookie:所有cookie的信息组成的map
${cookie.JSESSIONID.name}

initParam:所有web应用的初始化参数组成的map

调用java方法: 不需要会写,只要会调用标签库就行了
满足条件:
1.一个类里面的静态方法
public class ELFunc {
public static String myEncode(String str,String encode){
try {
return URLEncoder.encode(str, encode);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
2.写一个tld文件,静态方法进行描述,放在WEB-INF下
MyELFunc version:2.0 Shortnmae:MyELFunc URI:http://www.zy.com/MyELFunc 这个是名称空间
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>MyELFunc</short-name>
<uri>http://www.itheima.com/MyELFunc</uri>
<function>
<name>URLEnc</name>
<function-class>com.itheima.util.ELFunc</function-class>
<function-signature> java.lang.String myEncode(java.lang.String,java.lang.String)</function-signature>
</function>
</taglib>
3.jsp页面中,用taglib指令将tld文件引入当前jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.net.URLEncoder"%>
<%@ taglib uri="http://www.itheima.com/MyELFunc" prefix="MyELFunc" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
${MyELFunc:URLEnc("北京","utf-8") }
${fn:toUpperCase("asdfasdfKJKJKJdsagHIHidsfgGUGu") }
</body>
</html>

JSTL:

自定义标签技术

JSP标签和EL表达式的更多相关文章

  1. jsp不解析el表达式,不识别jstl标签,找不到http://java.sun.com/jsp/jstl/core

    问题描述: jsp页面中el表达式,例如:${pageContext.request.contextPath},原样呈现,未被解析. 解决方案: 为jsp页添加page指令如下: <%@ pag ...

  2. JSP、JSTL标签、EL表达式

    JSP.JSTL标签.EL表达式 1.EL表达式:${} 功能: 获取数据 执行运算 获取web开发的常用对象 2.JSP标签 例如: jsp标签还有很多功能,这里只列举出一种. <jsp:fo ...

  3. JSP页面用EL表达式 输出date格式

    JSP页面用EL表达式 输出date格式 1.头上引入标签 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix ...

  4. JavaWeb -- Jsp中的 EL表达式

    lEL 全名为Expression Language.EL主要作用: l获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.(某个web ...

  5. 解决JSP 不解析EL表达式

    解决JSP 不解析EL表达式,jsp在使用EL表达式的时候发现它不被解析,而是直接以字符串的形式显示了出来,经过查阅资料和实践,终于得知了原因并找到了解决方案 原因是:在默认情况下,Servlet 2 ...

  6. jsp页面用el表达式获取枚举的code

    jsp页面用el表达式获取枚举的code <c:set var="D_BUSINESS" value="<%=DeptEnum.D_BUSINESS%> ...

  7. jsp中的el表达式没有解析

    今天发现jsp中的el表达式没有解析,把解决的过程记录一下 在web.xml的web-app节点的版本改成2.4以上

  8. springmvc用model传值到jsp页面,el表达式引用接收不到传递过来的值

    springmvc用model传值到jsp页面,el表达式引用接收不到传递过来的值 查看下controller层代码可以发现,写的是没有错误的. @RequestMapping("list. ...

  9. jsp页面通过EL表达式获取list大小兼容性处理

    1.jsp页面通过EL表达式获取list大小,中间件用tomcat7时,下面这个写法是可以的 <input id="test" type="hidden" ...

随机推荐

  1. GeekforGeeks Trie - 键树简单介绍 - 构造 插入 和 搜索

    版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...

  2. oracle decode 用法

    含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN ...

  3. SAP文件夹的判断与创建

    [转自 http://blog.csdn.net/saphome/article/details/6956918] SAP文件夹存在的判断与创建 2010-08-29 20:15 相关函数:WS_QU ...

  4. 选股公式blog+节选

    <大智慧软件选股_大智慧软件如何选股>——一般性操作 http://jingyan.baidu.com/article/fa4125acb2028d28ac70923e.html < ...

  5. mathjax

    MathJax.Hub.Typeset() method. This will cause the preprocessors (if any were loaded) to run over the ...

  6. winform窗体取消最大化双击标题最大化

    实现目标,固定窗体大小,1.窗体标题去掉最大化按钮2.双击窗体标题也不会最大化,彻底取消最大化 问题,如果设置窗体MaximizeBox和MinimumSize属性,看似问题解决了,单随之而来的问题是 ...

  7. 【leetcode刷题笔记】Longest Valid Parentheses

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

  8. STM32大文件分块校验CRC

    一.CRC校验的使用    STM32内置CRC计算单元,节约了软件计算的时间.在软件开发中,可以为firm追加4字节的CRC校验码到生成的BIN文件最后位置,这个CRC码就是全部代码区域数据的CRC ...

  9. HDU 4267 A Simple Problem with Integers(2012年长春网络赛A 多颗线段树+单点查询)

    以前似乎做过类似的不过当时完全不会.现在看到就有点思路了,开始还有洋洋得意得觉得自己有不小的进步了,结果思路错了...改了很久后测试数据过了还果断爆空间... 给你一串数字A,然后是两种操作: &qu ...

  10. 各种IoC框架下实现AOP

    .Net AOP(五) 各种IoC框架下实现AOP 利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率 主要功能 日志记录,性 ...