JavaWeb EL表达式

在普通的JavaWeb项目中,会经常在jsp中嵌入java代码,这样会使得jsp代码混乱,可读性查。所以就产生了EL表达式。

传统jsp嵌套java代码都是把java代码放入 <%%> 中,页面同时有HTML代码时就显得很混乱,使用EL表达式可以很好解决此问题。下面看一下EL表达式的用法。

  • EL表达式有点“.”操作符
  • 有“[]”操作符

两个操作符各有其优缺点,点操作符使用方便而“[]”操作符功能强大
下面进行代码展示:

先在后端Servlet上设置一些属性,供给前端jsp获取:
其中的Student和Address类是自定义类

@WebServlet(value = "/ELInitServlet")
public class ELInitServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Address address = new Address("xa", "bj");
        Student student = new Student(1, "zs", address);
        //将student放入request域
        request.setAttribute("student", student);
        
        //跳转
        request.getRequestDispatcher("el.jsp").forward(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
  1. jsp用EL表达式获取普通属性
-------------------------------------<br/>
    ${requestScope.student}<br/>
    ${requestScope.student.sno}<br/>
    ${requestScope.student.name}<br/>
    ${requestScope.student.address.homeAddress}<br/>
    ${requestScope.student.address.schoolAddress}<br/>

结果:
在这里插入图片描述

@WebServlet(value = "/ELInitServlet")
public class ELInitServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //存放数组
        String[] hobbies = new String[] {"football", "basketball"};
        request.setAttribute("hobbies", hobbies);
        //跳转
        request.getRequestDispatcher("el.jsp").forward(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
  1. jsp用EL表达式获取数组
-------------- 数组 ------------------<br/>
    ${requestScope.hobbies[0]}<br/>
    ${requestScope.hobbies[1]}<br/>

结果:
在这里插入图片描述

@WebServlet(value = "/ELInitServlet")
public class ELInitServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //存放Map属性
        Map<String, Object> map = new HashMap<>();
        map.put("cn", "中国");
        map.put("us", "美国");
        request.setAttribute("map", map);
        //跳转
        request.getRequestDispatcher("el.jsp").forward(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}
  1. jsp用EL表达式获取map
 -------------- map ------------------<br/>
    ${requestScope.map.cn}<br/>
    ${requestScope.map.us}<br/>

结果:
在这里插入图片描述
4. jsp用EL表达式逻辑运算符和Empty运算符

-------------- 逻辑运算 ------------------<br/>
    ${3>2}、${3 gt 2}<br/>
    ${3>2||3<2},${3>2 or 3 < 2}<br/>
    -------------- Empty运算:变量为null或不存在时返回值为真 ------------------<br/>
    ${empty requestScope.hobbies}<br/>
    ${empty requestScope.hello}<br/>

结果:
在这里插入图片描述
5. jsp用EL表达式获取参数对象、隐式对象
form.jsp:

	<form action="el.jsp">
        用户名:<input name="uname" type="text">
        兴  趣;<br/>
            足球<input name="hobbies" value="足球" type="checkbox">
            篮球<input name="hobbies" value="篮球" type="checkbox">
            乒乓球<input name="hobbies" value="乒乓球" type="checkbox">
        <input type="submit" value="注册">
    </form>

el.jsp:

<%--    EL表达式的隐式对象(自带的对象)
        a.作用于访问对象(EL域对象):pageScope、requestScope、sessionScope、applicationScope
            如果不指定域对象,默认从小到大取值
        b.参数访问对象:获取表单数据(request.getParameter()、request.getParameterValues())
                                        ${param}                    ${paramValues}
        c.JSP隐式对象:pageContext,在JSP可以通过pageContext获取其他的JSP隐式对象
--%>
    -------------- 获取参数对象 ------------------<br/>
    ${param.uname}<br/>
    ${paramValues.hobbies[0]}<br/>
    ${paramValues.hobbies[1]}<br/>
    ${paramValues.hobbies[2]}<br/>
    -------------- 隐式对象级联获取 ------------------<br/>
    ${pageContext.request.localPort}<br/>

当form.jsp中按一下图片操作:
在这里插入图片描述
点击注册后的结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值