el表达式ne什么意思_[EL表达式] -EL中的所有,都在这

6993eb0df4ce6b4bdcb5025da71cc35b.png

再过去我们学习jsp中获取后台传来的数据的时候可以说是苦不堪言,但学习了EL表达时候,你也会感觉如sping般畅爽

粗略的精华部分

f521f59ff879994c595898dd96e4f406.png

不懂的来看详细的

1. EL: Expression Language, 表达式语言.

2. 在jsp中, 可以通过EL表达式简化java代码的书写. 通过使用EL获取数据(请求参数, 作用域数据).

3. 虽然可以通过<%= %>形式获取数据, 但是较为麻烦:

> 如果用到的数据是对象, 需要先导包;

> 从作用域取出的数据都是Object, 需要类型强转;

> 如果没有数据, 会显示 null.

f92ed36c054b3cf0c39e5e641c16c525.png

1.获取用户请求数据(请求实体)

<%=request.getParameter("uname")%>//获取请求实体中一个键一个值的数据
${param.uname}

<%=request.getParameterValues("fav")[1]%>//获取请求实体中同键不同值的数据,返回的是String数组
${paramValues.fav[1]}                   //可以直接使用角标获取 例如爱好

2.获取sum:

sum: <%=request.getAttribute("sum") 
sum: ${sum} 

3.获取字符串

str: <%=request.getAttribute("str")%>
 str: ${str} 

4.获取对象

name:<%=((User)request.getAttribute("user")).getName() 
name: ${user.name}  

address: <%=((User) request.getAttribute("user")).getAddress().getAddr() 
address: ${user.address.addr} 

5.获取list集合

name: ((List<User>)request.getAttribute("list")).get(1).getName() 
name: ${list[1].name}  

addr: ((List<User>) request.getAttribute("list")).get(1).getAddress().getAddr() 
addr: ${list[1].address.addr} 


6.获取map集合

<%=( (HashMap) request. getAttribute("c")).get("name)%> 
name: ${map.c.name} 

<%= ((User)( (HashMap)request. getAttribute("c" )).get("address"))> 
addr: ${map.c.address.addr}

测试Servlet 主要使用req 作用域

public class TestServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//     数字
        req.setAttribute("sum:",123);
//     字符串
        req.setAttribute("str","abc");
//     对象
        User user1 = new User(1, "鸣人", new Address("福州"));
        User user2 = new User(1, "佐助", new Address("泉州"));
        User user3 = new User(1, "小樱", new Address("厦门"));
        req.setAttribute("user",user1);
//    List 集合
        List<User> list = new ArrayList<>();
//     使用方法将对象装入集合
        Collections.addAll(list,user1,user2,user3);
        req.setAttribute("list",list);
//    Map集合
        Map<String, User> map  = new HashMap<>();
        map.put("a",user1);
        map.put("b",user2);
        map.put("c",user3);
        req.setAttribute("map",map);
//    跳转到测试页面输出
//        req.getRequestDispatcher("/demo1.jsp").forward(req,resp);
        req.getRequestDispatcher("/demo2.jsp").forward(req,resp);
    }
}

没有使用EL表达式获取作用域信息

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>没有使用el表达的取值方式</title>
</head>
<body>
<ul>
    <li>demo 获取请求参数: <%=request.getParameter("demo")%>
    </li>
    <li>sum:<%=request.getAttribute("sum")%>></li>
    <li>str:<%=request.getAttribute("str")%></li>
    <li> use:
        <ul>
            <li>name:<%=((User)request.getAttribute("user")).getName()%></li>
            <li>address: <%=((User) request.getAttribute("user")).getAddress().getAddr()%></li>
        </ul></li>
    <li>list
        <ul>
            <li>name: <%=((List<User>)request.getAttribute("list")).get(1).getName()%></li>
            <li>addr: <%=((List<User>) request.getAttribute("list")).get(1).getAddress().getAddr()%></li>
    </li>
    <li> map
        <ul>
            <%--<li>name: <%=((Map)request.getAttribute("a")).values()%></li>--%>
            <%--<li>address:<%=((Map)request.getAttribute("a")).getOrDefault("a",1)%></li>--%>
        </ul>
    </li>
    <li>没有信息,仅作测试看看返回内容:<%=request.getAttribute("abc")%></li>
</ul>

</body>
</html>

使用EL表达式获取信息

<html>
<head>
    <title>EL</title>
</head>
<body>
        <%--获取请求参数--%>
        <ul>
            <li>请求参数:${param.demo}</li>
            <li>获取作用域</li>
            <li>sum: ${num}</li>
            <li>str: ${str}</li>
            <li>user
                <ul>
                    <li>name: ${user.name}</li>
                    <li>addr: ${user.address.addr}</li>
                </ul>
            </li>
            <li>list
                <ul>
                    <li>name: ${list[1].name}</li>
                    <li>addr: ${list[1].address.addr}</li>
                </ul>
            </li>
            <li>map
                <ul>
                    <li>name: ${map.c.name}</li>
                    <li>addr: ${map.c.address.addr}</li>
                </ul>
            </li>
            <li>没有数据
                ${abc}
            </li>
        </ul>
</body>
</html>

9b120dd85882a84c3588d9212d724e72.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值