【JSTL】-EL表达式

来源:互联网 发布:159素食全餐淘宝好便宜 编辑:程序博客网 时间:2024/06/05 18:41

    目的:为了使JSP写起来更加简单,计算和输出存储在标志位置的Java对象的值,JSP2.0引入了EL表达式。

         EL的内置对象:pageScoperequestScopesessionScopeapplicationScope

 

    如果只是使用EL表达式不需要引入任何jar包,只要jsp/servlet容器实现了J2EE1.4/Servlet2.4JSP2.0规范就可以。

 

El的功能:

    与<jsp:getProperty />类似

    简化<jsp:getProperty />

  精确的访问存储对象

       Bean属性的简略记法

  空值取代错误消息

 

EL表达式语法:

${表达式}

注意:表达式的值为null,则页面显示为一个空字符串,而不是null.

 

EL的作用域:


  使用EL时,默认以一定的顺序搜索四个作用域,将最先找到的变量值显示出来,只要找到某一个不为空的值则调用他的同toString()方法并返回调用结果,如果都没有找到,则返回空字符串,而不是null.


Demo:测试EL表达式

package com.lf.jstl;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class JstlElServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setAttribute("hello", "Hello World");request.getRequestDispatcher("/jstl_el.jsp").forward(request, response);}}

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>Insert title here</title></head><body><h1>测试EL表达式</h1>        不使用EL表达式获取字符串:<br>        使用hello(jsp脚步):<%=request.getAttribute("hello") %><br>        使用EL表达式获取字符串:<br><span style="white-space:pre">        hello(el表达式 语法:$和{}): ${hello}<br> </body></html>

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">   <body>    <a href="servlet/JstlElServlet">测试EL表达式</a>  </body></html>

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>JstlElServlet</servlet-name> <servlet-class>com.lf.jstl.JstlElServlet</servlet-class> </servlet>  <servlet-mapping> <servlet-name>JstlElServlet</servlet-name> <url-pattern>/servlet/JstlElServlet</url-pattern> </servlet-mapping> </web-app>

预览结果:


单机测试EL表达式:一种是不使用EL表达式的,一种是使用EL表达式获取字符串的。


使用EL的好处:

1、代替复杂代码,省去条件判断

2、访问Bean的属性

EL提供了“.”和“[]”两种运算符来存取数据

使用userBean填充数据,并通过Bean实例来显示数据

Bean属性的简略记法:

1、点号记法:${BeanName.beanProperty}

2、数组记法:${BeanName["beanProperty"]}比较少用

3、使用EL表达式可以输出MVC的内容,代码简单。

ServletdoPost()doGet()方法中,保存在作用域范围内的数据,可以在其它的JSP页面获取


1 0
原创粉丝点击