ER表达式

ER表达式

概念:是工作在视图组件的技术,完成对内置对象的属性的获取并进行处理,把处理结果发给浏览器进行显示。
对环境的要求:jsp1.2, j2ee2.0, tomcat4.0
基本语法: ${表达式}

如:

  • eldemo01.jsp
<%@ page isELIgnored="false"%> 
<%
	pageContext.setAttribute("name","www.zte.cn");
   
%>
 <%=pageContext.getAttribute("name")%>
 <br>
 #####${name} 

在这里插入图片描述

  • eldemo01.jsp

    <%@ page isELIgnored="false"%> 
    <%
    	pageContext.setAttribute("name","www.zte.cn");
       
    %>
     <%=pageContext.getAttribute("name123")%>
     <br>
     #####${name123} 
    

在这里插入图片描述

  • eldemo01.jsp

    <%@ page isELIgnored="true"%> 
    <%
    	pageContext.setAttribute("name","www.zte.cn");
       
    %>
     <%=pageContext.getAttribute("name123")%>
     <br>
     #####${name123} 
    

1. EL表达式的搜索顺序和隐式对象从隐式对象中获得数据

  • eldmo02.jsp

    <%
    	pageContext.setAttribute("name","www.zte.cn") ;
    	request.setAttribute("name","tom") ;
    %>
    <h1>****${sessionScope.name}</h1>
    

在这里插入图片描述

2. EL表达式的处理

  • eldemo00.jsp

    <% 
     pageContext.setAttribute("a","30"); 
     request.setAttribute("b",5);
    %> 
    <h1><%=request.getAttribute("c")%></h1><br>
      <h1>---c=${c}----</h1><br>
    <h1>---a*b+c+6=${a*b+c+6}---</h1><br>
    <h1>---a>b=${a>b}---</h1><br>
     
    <h1>----3+5*2=${3+5*2}-----</h1>
    

在这里插入图片描述

3. EL表达式在MVC中的应用

3.1 EL表达式处理字符串

自动转换成整型

  • ELServletDemo01.java

    package cn.zte.pxb.servlet.el ;
    import java.io.* ;
    import javax.servlet.* ;
    import javax.servlet.http.* ;
    
    public class ELServletDemo01 extends HttpServlet
    {
        
    	public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    	{
    		req.setAttribute("name","www.zte.cn") ;
    		// 服务器端跳转
    		req.getRequestDispatcher("eldemo03.jsp").forward(req,resp) ;
    	}
    	public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    	{
    		this.doGet(req,resp) ;
    	}
    }
    /*
      <servlet>
    	<servlet-name>el01</servlet-name>
    	<servlet-class>cn.zte.pxb.servlet.el.ELServletDemo01</servlet-class>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
    	<servlet-name>el01</servlet-name>
    	<url-pattern>/eldemo/el_1</url-pattern>
      </servlet-mapping>
    */
    
  • eldemo03.jsp

     <h1>${name}</h1>
    

在这里插入图片描述

3.2 EL表达式处理Bean对象的属性–导航

  • Simple.java

    package cn.cx.servlet.el ;
    public class Simple
    {
    	private String name;
    	public Simple()
        {}
    	public void setName(String name)
    	{
    		this.name = name ;
    	}
    	public String getName()
    	{
    		return this.name ;
    	}
    }
    
  • ELServletDemo02.java

    package cn.cx.servlet.el ;
    
    import java.io.* ;
    import javax.servlet.* ;
    import javax.servlet.http.* ;
    
    public class ELServletDemo02 extends HttpServlet
    {
    	public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    	{          Simple s=null;
    		      //System.out.println(s);
    			   s = new Simple() ;
    		s.setName("lisa") ;
    		req.setAttribute("sim",s) ;
    		// 服务器端跳转
    		req.getRequestDispatcher("eldemo04.jsp").forward(req,resp) ;
    	}
    	public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    	{
    		this.doGet(req,resp) ;
    	}
    };
    /*
      <servlet>
    	<servlet-name>el02</servlet-name>
    	<servlet-class>cn.cx.servlet.el.ELServletDemo02</servlet-class>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
    	<servlet-name>el02</servlet-name>
    	<url-pattern>/eldemo/el_2</url-pattern>
      </servlet-mapping>
    */
    
  • eldemo04.jsp

    <h1>***${sim.name}      //其实sim对象的方法,而不是属性
    

在这里插入图片描述

4. el表达式深度导航

  • CompanyBean.java

    package cn.cx.servlet.el ;
    public class CompanyBean
    {
    	private String companyName ;
    	private String business ;
    	
    	public CompanyBean()
    	{}
    	public void setCompanyName(String companyName)
    	{
    		this.companyName = companyName ;
    	}
    	public void setBusiness(String business)
    	{
    		this.business = business ;
    	}
    	public String getCompanyName()
    	{
    		return this.companyName ;
    	}
    	public String getBusiness()
    	{
    		return this.business ;
    	}
    };
    
  • NameBean.java

    package cn.cx.servlet.el ;
    
    public class NameBean
    {
    	private String firstName ;
    	private String lastName ;
    
    	public NameBean()
    	{}
    	public void setFirstName(String firstName)
    	{
    		this.firstName = firstName ;
    	}
    	public void setLastName(String lastName)
    	{
    		this.lastName = lastName ;
    	}
    	public String getFirstName()
    	{
    		return this.firstName ;
    	}
    	public String getLastName()
    	{
    		return this.lastName ;
    	}
    };
    
  • EmployeeBean.java

    package cn.cx.servlet.el ;
    
    public class EmployeeBean
    {
    	private NameBean name;//多个公司可以雇佣一个人员 
    	private CompanyBean company;//多个员工可以被一个公司雇佣
    
    	public EmployeeBean()
    	{}
    	public void setName(NameBean name)
    	{
    		this.name = name ;
    	}
    	public void setCompany(CompanyBean company)
    	{
    		this.company = company ;
    	}
    	public NameBean getName()
    	{
    		return this.name ;
    	}
    	public CompanyBean getCompany()
    	{
    		return this.company ;
    	}
    }
    
  • ELServletDemo03.java

    package cn.cx.servlet.el ;
    
    import java.io.* ;
    import javax.servlet.* ;
    import javax.servlet.http.* ;
    
    public class ELServletDemo03 extends HttpServlet
    {
    	public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    	{
    		NameBean nb = new NameBean() ;
    		nb.setFirstName("Li") ;
    		nb.setLastName("sa") ;
    		
    		CompanyBean cb = new CompanyBean() ;
    		cb.setCompanyName("www.cx.cn") ;
    		cb.setBusiness("JAVA EE、JAVA SE、JAVA ME") ;
    
    		EmployeeBean eb = new EmployeeBean() ;
    		eb.setName(nb) ;
    		eb.setCompany(cb) ;
    
    		// 保存属性
    		req.setAttribute("emp",eb) ;
            //request.getAttribute("emp").getName().getFirstName();
    		// 服务器端跳转
    		req.getRequestDispatcher("eldemo05.jsp").forward(req,resp) ;
    	}
    	public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    	{
    		this.doGet(req,resp) ;
    	}
    };
    /*
      <servlet>
    	<servlet-name>el03</servlet-name>
    	<servlet-class>cn.cx.servlet.el.ELServletDemo03</servlet-class>
      </servlet>
      <servlet-mapping>
    	<servlet-name>el03</servlet-name>
    	<url-pattern>/eldemo/el_3</url-pattern>
      </servlet-mapping>
    */ 
    
  • eldemo05.jsp

    <h1>FirstName:${emp.name.firstName}</h1><br>
    <h1>BusinessName:${emp.company.companyName}</h1>
    <h1>CompanyBusiness:${emp.company.business}</h1>
    

    在这里插入图片描述

5. el表达式在集合中的应用

  • ELServletDemo04.java

    package cn.cx.servlet.el ;
    
    import java.io.* ;
    import java.util.* ;
    import javax.servlet.* ;
    import javax.servlet.http.* ;
    
    public class ELServletDemo04 extends HttpServlet
    {
    	public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    	{
    		List<Simple> l = new ArrayList<Simple>() ;
    		Simple s = null ;
    		s = new Simple() ;
    		s.setName("zhangsan") ;
    		l.add(s) ;
    
    		s = new Simple() ;
    		s.setName("lisi") ;
    		l.add(s) ;
    
    		s = new Simple() ;
    		s.setName("wangwu") ;
    		l.add(s) ;
    
    		req.setAttribute("all",l) ;
    		// 服务器端跳转
    		req.getRequestDispatcher("eldemo06.jsp").forward(req,resp) ;
    	}
    	public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
    	{
    		this.doGet(req,resp) ;
    	}
    };
    /*
      <servlet>
    	<servlet-name>el02</servlet-name>
    	<servlet-class>cn.cx.servlet.el.ELServletDemo04</servlet-class>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
    	<servlet-name>el02</servlet-name>
    	<url-pattern>/eldemo/el_4</url-pattern>
      </servlet-mapping>
    */
    
  • eldemo06.jsp

    <%@page import="java.util.*"%>
    <%--
    	要使用Iterator进行输出
    --%>
    <h1>${all}</h1><br>
    <h1>${all[2].name}</h1><br>
    <%
    	// List要使用Iterator输出
    	List l = (List)request.getAttribute("all") ;
    	Iterator iter = l.iterator() ;
    	while(iter.hasNext())
    	{
    		// 将取出的对象放在page范围之中
    		 pageContext.setAttribute("sim",iter.next()) ;
            //simple s=(simple)(iter.next());
             //<%=s.getName()%>
    
    		<h1>${sim.name}</h1>
    <%
    	}
    %>
    

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值