JSTL和EL

EL表达式

为什么需要EL表达式
在这里插入图片描述
什么是EL表达式
它是一种借鉴了JavaScript和XPath的表达式语言,EL表达式定义一系列的隐含对象和操作符,使开发人员能够很方便的访问页面的上下文。
在这里插入图片描述
EL表达式语法
在这里插入图片描述
EL表达式的语法有两个要素,$和{ } 两者缺一不可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

.操作符
EL表达式通常由两部分组成,对象和属性,就像在java代码中一样,在EL表达式中也可以用点操作符来访问某个对象的属性。例如通过美元符号{user.name}可以访问user对象的name属性。

[ ] 操作符
与点操作符相似 【】 操作符也可以访问对象的某个属性,如美元符号{user[“name”]}可以访问user对象的name属性,除此之外【】操作符还提供了更强大的功能。

  • 当属性名中包含了特殊字符如 . 或- 的等情况下,就不能使用点操作符了,使用时只能使用【】操作符。
  • 访问数组,可以根据索引值来访问其中的元素,例如:美元符号{names[0]}。

示例:

<html>
<head>
    <title>示例4EL表达式</title>
</head>
<body>
    <%
        Map names = new HashMap();
        names.put("one","zhangsan");
        names.put("two","lisi");
        request.setAttribute("names",names);
    %>
    姓名:${
   names.one}<br/>
    姓名:${
   names.two}
</body>
</html>

关系操作符
在这里插入图片描述
逻辑操作符
在这里插入图片描述
Empty操作符
在这里插入图片描述

EL表达式隐式对象

在这里插入图片描述

作用域访问对象
在这里插入图片描述
通过一个示例加以说明,下面以用户注册为例,制作一个注册页面,提交注册后,以EL表达式展示信息。
注册页面代码如下:

<html>
<head>
    <title>用户注册</title>
</head>
<body>
<form action="/ch08yx/userServlet" method="post" id="regfrm">
    <table>
        <tr>
            <td>用户名:</td>
            <td><input type="text" id="userName" name="userName"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" id="userPwd" name="userPwd"></td>
        </tr>
        <tr>
            <td>业余爱好</td>
            <td>
                <input type="checkbox" name="habit" value="看书">看书
                <input type="checkbox" name="habit" value="玩游戏">玩游戏
                <input type="checkbox" name="habit" value="旅游">旅游
                <input type="checkbox" name="habit" value="游泳">游泳
                <input type="checkbox" name="habit" value="看电视">看电视
            </td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="提交"></td>
        </tr>
    </table>
</form>
</body>
</html>

当用户点击提交后,将表单提交到与注册功能相关的Servlet。处理完毕后跳转到注册成功页面展示信息。
用户示例类User代码如下:


public class User implements Serializable {
   
    private static final long serialVersionUID=8959761497403478596L;
    private String name;
    private String password;
    private String role;

    public String getRole() {
   
        return role;
    }

    public void setRole(String role) {
   
        this.role <
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值