php el表达式,EL表达式 & JSP标签

EL表达式

EL作用

jsp的核心语法: jsp表达式 和 jsp脚本

以后开发jsp的原则: 尽量在jsp页面中少写甚至不写java代码。

使用EL表达式替换掉jsp表达式

EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!

语法:${变量或表达式}

EL语法

1)输出基本数据类型变量

1.1 从四个域获取: ${name}

1.2 指定域获取 : ${pageScope.name}

域范围 : pageScoep / requestScope / sessionScope / applicationScope

2)输出对象的属性值

3)输出集合对象 : List 和 Map

4)EL表达式计算

EL语法

String name = "rose";

//放入域中

//pageContext.setAttribute("name",name);

pageContext.setAttribute("name",name,PageContext.REQUEST_SCOPE);

%>

EL表达式: ${name }

--%>

EL表达式: ${pageScope.name }

--%>

EL输出不同类型的数据

//保存数据

Student student = new Student("eric",20);

//放入域中

pageContext.setAttribute("student",student);

//List

List list = new ArrayList();

list.add(new Student("rose",18));

list.add(new Student("jack",28));

list.add(new Student("lucy",38));

//放入域中

pageContext.setAttribute("list",list);

//Map

Map map = new HashMap();

map.put("100",new Student("mark",20));

map.put("101",new Student("maxwell",30));

map.put("102",new Student("narci",40));

//放入域中

pageContext.setAttribute("map",map);

%>

${student.name} - ${student.age }

--%>


${list[0].name } - ${list[0].age }

${list[1].name } - ${list[1].age }

${list[2].name } - ${list[2].age }


${map['100'].name } - ${map['100'].age }

${map['101'].name } - ${map['101'].age }

${map['102'].name } - ${map['102'].age }

EL表达式计算

${10+5 }

${10*5 }


, =, <=, ==, !=, --%>

${10>5 }

${10<5 }

${10!=10 }


${true && false }

${true || false }

${!false }


//String name = "eric";

//String name = null;

String name = "";

pageContext.setAttribute("name",name);

%>

判断null: ${name==null }

判断空字符: ${name=="" }

判空: ${name==null || name=="" }

另一种判空写法: ${empty name }

jsp标签

jsp标签的作用 : 替换jsp脚本

1)流程判断(if for循环)

2)跳转页面(转发,重定向)

Jsp标签分类

1)内置标签(动作标签): 不需要在jsp页面导入标签

2)jstl标签: 需要在jsp页面中导入标签

3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签

动作标签

转发标签:

参数标签:

包含标签:

动作标签

//request.getRequestDispatcher("/09.action2.jsp?name=eric").forward(request,response);

%>

--%>

--%>

主页的内容

原理 : 包含与被包含的页面先各自翻译成java源文件,然后再运行时合并在一起(先翻译再合并)

静态包含 vs 动态包含的区别?

1)语法不同

静态包含语法 :

动态包含语法 :

2)参数传递不同

静态包含不能向被包含页面传递参数

动态包含可以向被包含页面传递参数

3)原理不同

静态包含: 先合并再翻译

动态包含: 先翻译再合并

JSTL标签(全名:java standard tag libarary - java标准标签库)

核心标签库(c标签库)天天用

国际化标签(fmt标签库)

EL函数库(fn函数库)

xml标签库(x标签库)

sql标签库(sql标签库)

使用JSTL标签步骤 :

1)导入jstl支持的jar包(标签背后隐藏的java代码) : 注意:使用javaee5.0的项目自动导入jstl支持jar包

2)使用taglib指令导入标签库 :

3)在jsp中使用标签

核心标签库的重点标签

保存数据:

获取数据:

单条件判断:

多条件判断 :

循环数据 :

重定向 :

核心标签库

String msg = null;

pageContext.setAttribute("msg",msg);

%>

${msg }

default: 当value值为null时,使用默认值

escapeXml: 是否对value值进行转义,false,不转义,true,转义(默认)

--%>


条件成立


优秀

良好

一般

及格

不及格

//List

List list = new ArrayList();

list.add(new Student("rose",18));

list.add(new Student("jack",28));

list.add(new Student("lucy",38));

//放入域中

pageContext.setAttribute("list",list);

//Map

Map map = new HashMap();

map.put("100",new Student("mark",20));

map.put("101",new Student("maxwell",30));

map.put("102",new Student("narci",40));

//放入域中

pageContext.setAttribute("map",map);

%>


begin="" : 从哪个元素开始遍历,从0开始.默认从0开始

end="": 到哪个元素结束。默认到最后一个元素

step="" : 步长 (每次加几) ,默认1

items="": 需要遍历的数据(集合)

var="": 每个元素的名称

varStatus="": 当前正在遍历元素的状态对象。(count属性:当前位置,从1开始)

--%>

序号:${varSta.count} - 姓名:${student.name } - 年龄:${student.age}


${entry.key } - 姓名: ${entry.value.name } - 年龄:${entry.value.age }


String str = "java-php-net-平面";

pageContext.setAttribute("str",str);

%>

${s }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值