Java EL 表达式的使用01

Java EL 表达式的使用

使用El表达式进行回显数据

-为什么要用el表达式,先来看之前 脚本输出

<body>
    <form action="el.jsp">
        username:<input type="text" name="name" value="<%=request.getParameter("name") %>" /><br>
        <input type="submit" value="提交">
    </form>

    <br>
    <%

    out.print(request.getParameter("name"));
    %>
</body>

效果:

这里写图片描述

这里我们发现 当我们用小脚本去回写数据的时候, 表单默认会显示为null 数据

当我们输入一些值,然后提交的时候,这时会正常显示
这里写图片描述

从这里我们会发现,其实小脚本 的使用就有点不合适了


还有我们可以举一个session取值的例子

<br>
    <br>
    <%
    Customer customer = new Customer();
    customer.username="zhangsan";
        session.setAttribute("user", customer);


        out.print(((Customer)session.getAttribute("user")).getUsername());
    %>

效果虽然可以,但是写小脚本很麻烦

这里写图片描述

- 使用El表达式完成以上功能

<body>
    <form action="el.jsp">
        username:<input type="text" name="name" value="${param.name }" /><br>
        <input type="submit" value="提交">
    </form>

    <br>
    获取参数中的name值:<br>
    ${param.name}

    <br>
    <br>
    <%
    Customer customer = new Customer();
    customer.username="zhangsan";
        session.setAttribute("user", customer);

    %>
    获取session域当中的值:<br>
    ${sessionScope.user.username}




</body>

效果:

这里写图片描述

el表达式中括号运算符的方法

${sessionScope["com.xinhua.user"].username}

举例:

<br>
    <%
    Customer customer = new Customer();
    customer.username="zhangsan";
        session.setAttribute("com.xinhua.user", customer);

    %>
    获取session域当中的值:<br>
    ${sessionScope["com.xinhua.user"].username}

效果如上一致…

  • El 可以进行自动的类型转换
    <form action="el.jsp">
        username:<input type="text" name="name" value="${param.name }" /><br>
        <input type="submit" value="提交">
    </form>

    <br>
    获取参数中的name值:<br>
    ${param.name+10}

    <br>
    <br>

效果:
这里写图片描述

  • El 隐含对象

当我们不去书写作用域的时候,默认el表达式就会从作用域最小的范围内寻找值,如果找到则显示,找不到继续向更大的范围寻找

例如:

<br>
    <%
    Customer customer = new Customer();
    customer.username="zhangsan";
        session.setAttribute("user", customer);

    %>
    获取session域当中的值:<br>
    ${user.username}
  1. 这里的${user.username} 会 先去page范围内找user
  2. 再去request当中寻找user属性
  3. 如果找不到再去session当中去寻找user,这个时候找到了user 显示其属性值
  4. 如果上面都没找到则继续寻找application当中有没有user

猜你喜欢

转载自blog.csdn.net/qq_36981842/article/details/80214987