JSP基础知识(EL表达式)

为什么需要EL
JavaBean在JSP中的局限:获取JavaBean属性必须要实例化;强制类型转换
如果页面编写出现逻辑错误,将会导致代码执行错误,并且JSP页面编译页面时也会产生错误
解决方法:使用EL表达式简化
什么是EL表达式
EL:即Expression Language(表达式语言)
EL的功能:替代JSP页面的复杂代码
EL语法:$(EL exprission)
${bean.name}或${bean['name']}
${bean.name}实质是调用bean的getName()方法
EL的特点:
自动转换类型:EL得到某个数据可以自动转换类型;对于类型的限制更加宽松
使用简单:相比较在JSP中嵌入Java代码,EL应用个更简单
EL语法:以"${"作为开始,以"}"作为结束
直接使用变量名获取值$:${username}
变量属性范围名称:
属性范围
EL中的名称
page
pageScope,例如${PageScope.username},表示在page范围内查找username变量,找不到返回null
request
requserScope
session
sessionScope
application
applicationScope
EL运算符
运算符"[]"和运算符"."
作用:获取独显属性:${user.name}等于${user["name"]};在基本使用时,两种作用一样
获取对象集合中的数据:在session中保存了一个(list)集合users,下标从0开始。例如:${sessionScope.user[1]}
运算符"[]"和运算符"."的区别:
1.[ ]可以包含特殊字符;
2.[ ]可以是集合类型的下标,''.'后边不能直接用下标,可以利用.get(下标)来获取;
3.[ ]属性名称可以是一个属性(可变的)
<%
HashMap map =new HashMap();
map.put("a", "123");
map.put(".", "1234");
map.put("&", "sssss");
String name="and";
map.put("tom", "tom and jerry");
map.put("jerry", "jerry and tom");
map.put("and", " andjerrytom");
request.setAttribute("name", name);
List list=new ArrayList();
list.add("1");
list.add("a");
User user=new User("admin","123");
request.setAttribute("map", map);
request.setAttribute("user", user);
request.setAttribute("nam", "nam");
request.setAttribute("e", "e");
%>
<!-- 基本使用时,两种作用一样 -->
.语法:${map.a } --------[]语法:${map["a"] }<br/>
.语法:${user.uname }--------[]语法:${user["uname"] }<br/>
<!-- []可以包含特殊字符 -->
.语法:---------[]语法:${map['&'] }<br/>
<!-- []可以是list集合类型的下标,.后边不能直接用下标,可以.get-->
.语法:${list.get(0) } ---------[]语法:${list[0] }<br/>
<!-- []里属性名称(str)可以是一个属性(是可变的) -->
.语法${map.name }-------[]语法:${map[name] }<br/>
</body>

例子:输入名字,点击按钮保存名字,并在页面显示出来
<%@page import="com.jredu.ch01.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String uname=request.getParameter("uname");
ArrayList<User> users=(ArrayList)session.getAttribute("users");
if(users==null){
users=new ArrayList<>();
}
if(uname!=null){
User user=new User(uname,"");
users.add(user);
session.setAttribute("users", users);
}
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>存储名字</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="test3.jsp">
<input type="text" name="uname">
<input type="submit">
</form>
<%
if(users!=null){
for(int i=0;i<users.size();i++){
request.setAttribute("count", i);
%>
姓名:${users[count].uname}
<br>
<%
}
}
%>
</body>
</html>


<body>
<form action="welcome.jsp">
用户名: <input type="text" name="uname" >
密 码: <input type="password" name="pwd" >
爱好:<input type="checkbox" value="game" name="like">游戏
<input type="checkbox" value="study" name="like">学习
<input type="checkbox" value="sing" name="like">唱歌
<input type="submit" value="登录" />
</form>
</body>
welcome.jsp:
<body>

<!-- param和request.getParameter(name)相同 -->
<!-- 隐式对象类别1:四个作用范围 -->
<!-- 隐式对象类别2:请求参数 -->
欢迎您${param.uname }
爱好:${paramValues.like[0] } ${paramValues.like[1] }
<!-- 隐式对象类别3:一些常见的jsp对象 -->
${cookie.c1.value }
<!-- 获取头信息 -->
${header['User-Agent'] }<br/>
${headerValues
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值