el表达式获取jsp域对象、获取对象(获取时间使用逻辑视图)、List集合(可获取对象)、Map集合的值(可获取对象)
程序员文章站
2022-04-15 18:32:26
一、el表达式获取jsp域对象jsp和html都要在web目录下写<%@ page contentType="text/html;charset=UTF-8" language="java" %> el获取域中的数据 <% //在域中存储数据 session.setAttribute("name",...
一、el表达式获取jsp域对象
el是用{}而不是()
el表达式只能从域对象中获取值
jsp和html都要在web目录下写
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el获取域中的数据</title>
</head>
<body>
<%
//在域中存储数据
session.setAttribute("name","李四");
request.setAttribute("name","张三");
session.setAttribute("age","19");
%>
<h3>el获取值</h3><br>
${requestScope.name}<br>
${sessionScope.age}<br>
${sessionScope.hahha}<%--没有这个值也不会报错,所以不用判断null了,比之前的方便--%>
${name}<%--这里的name同名了会输出张三(因为第二种方法从小到大找,找到为止)--%>
</body>
</html>
这里我的虚拟目录为/,但我在web建了个el目录,所以浏览器要加上el才能访问:
这样获取值可代替:直接用${requestScope.cc_error}替换就行,自动判断空的,空就不输出,方便:
<div><%=request.getAttribute("cc_error")==null?"":request.getAttribute("cc_error")%></div>
<div><%=request.getAttribute("login_error")==null?"":request.getAttribute("login_error")%></div>
二、获取对象、List集合、Map集合的值
- 获取对象:${域名称.键名.属性名}
- 本质上会去调用对象的getter方法
- List集合:${域名称.键名[索引]}
- Map集合:
- 第一种方法: ${域名称.键名.key名称}
- 第二种方法: ${域名称.键名[“key名称”]}
新建User类:
package it.cast;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author QLBF
* @version 1.0
* @date 2020/11/27 12:38
*/
public class User {
private String name;
private int age;
private Date birthday;
public String getBirStr(){
/**
* 逻辑视图
* @description:因为el获取的日期是美国的,我们要转为年月日的
* @param: * @param:
* @return: java.lang.String
* @author QLBF
* @date: 2020/11/27 12:40
*/
if (birthday!=null){
//1.格式化日期对象
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//2.返回字符串即可
return sdf.format(birthday);
}else {
return "";
}
}
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
c.jsp:
<%@ page import="it.cast.User" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>T获取对象、List集合、Map集合的值itle</title>
</head>
<body>
<%
/*设置User类*/
User user=new User();
user.setName("张三");
user.setAge(18);
user.setBirthday(new Date());
//下面的user是上面的user对象传过去
request.setAttribute("u",user);
//设置list
List list=new ArrayList();
list.add("aaa");
list.add("bbb");
//可以存对象
list.add(user);
request.setAttribute("list",list);
//设置map
Map map=new HashMap<>();
map.put("sname","李四");
map.put("gender","男");
map.put("user",user);
request.setAttribute("map",map);
%>
<h3>1.el获取对象中的值,是根据上面request.setAttribute的键来获取</h3>
${requestScope.u}<br> <%--输出传输的user对象的地址值--%>
<%--
* 通过的是对象的属性来获取
* setter或getter方法,去掉set或get,在将剩余部分,首字母变为小写。
* setName --> Name --> name
--%>
${requestScope.u.name}<br><%--获取user对象的getName方法--%>
${u.age}<br>
${u.birthday}<br>
${u.birStr}<br><%--获取user对象的getbirStr方法--%>
<h3>2.el获取List值</h3>
${list}<br>
${list[0]}<br>
${list[1]}<br>
${list[2]}<br>
${list[12]}<br><%--越界也不会报错,不输出而已--%>
${list[2].name}<br>
<h3>el获取Map值</h3>
${map.gender}<br>
${map["gender"]}<br><%--加[]后引号不能省--%>
${map.user.name}<br>
</body>
</html>
本文地址:https://blog.csdn.net/QLBFA/article/details/110224543
上一篇: Cloud网管gateWay
下一篇: Linux安装jdk之Unbantu