• EL表达式(一)


    EL表达式:
      它不是一门语言,只是jsp的表达式
      EL表达式只能获取四大域中的数据(pageContext,request,session,application)
    EL表达式:获取 对象 的get方法。
    基本语法:${EL表达式}
    如果EL表达式获取的对象为NULL,页面不会显示数据,EL表达式永远不会出现空指针。

    11个隐式对象:
      pageContext
      pageScope 从page范围内取数据
      requestScope
      sessionScope
      applicationScope
      param 接收传递到本页面的参数
      paramValues 接收传递到本页面的一组参数
      header 一个头信息数据
      headerValues 一组头信息数据
      cookie cookie中的数据
      initParam 取得配置的初始化参数
    运算符"."和"[]" : "."能做的"[]"也能做,"[]"能做的"."不一定能做

    <jsp:useBean id="实例化对象名称" scope="对象保存的属性范围(4种)" class="包全名.类全名(按住Ctrl鼠标单击可进入对应Java程序)" ></jsp:useBean>
    设置对象<jsp:setProperty name="实例化对象名称(id)" property="*" > 自动匹配
    设置对象<jsp:setProperty name="实例化对象名称(id)" property="属性名称" /> 指定属性
    设置对象<jsp:setProperty name="实例化对象名称(id)" property="属性名称" param="参数"/> 指定参数
    设置对象<jsp:setProperty name="实例化对象名称(id)" property="属性名称" value="内容"/> 制定内容
    获取对象<jsp:getProperty name="实例化对象名称(id)" property="属性名称" />

    1.java

    1
    package cn.gs.ly.mvc.domain; 2 3 import java.util.Date; 4 5 public class Person { 6 private String name; 7 private String gender; 8 private boolean married; 9 private Date birthday; 10 private Address address = new Address(); 11 12 public Person() { 13 14 } 15 16 public Person(String name, String gender, boolean married) { 17 super(); 18 this.name = name; 19 this.gender = gender; 20 this.married = married; 21 } 22 23 24 public Address getAddress() { 25 return address; 26 } 27 28 public void setAddres(Address address) { 29 this.address = address; 30 } 31 32 public String getName() { 33 return name; 34 } 35 public void setName(String name) { 36 this.name = name; 37 } 38 public String getGender() { 39 return gender; 40 } 41 public void setGender(String gender) { 42 this.gender = gender; 43 } 44 public boolean isMarried() { 45 return married; 46 } 47 public void setMarried(boolean married) { 48 this.married = married; 49 } 50 public Date getBirthday() { 51 return birthday; 52 } 53 public void setBirthday(Date birthday) { 54 this.birthday = birthday; 55 } 56 57 }
     1 package cn.gs.ly.mvc.domain;
     2 
     3 public class Address {
     4     private String city="青岛";
     5 
     6     public String getCity() {
     7         return city;
     8     }
     9 
    10     public void setCity(String city) {
    11         this.city = city;
    12     }
    13     
    14 }

    2.jsp

    1
    <%@page import="java.util.HashMap"%> 2 <%@page import="java.util.Map"%> 3 <%@page import="java.util.ArrayList"%> 4 <%@page import="java.util.List"%> 5 <%@page import="cn.gs.ly.mvc.domain.Person"%> 6 <%@ page language="java" contentType="text/html" pageEncoding="UTF-8"%> 7 <!DOCTYPE html> 8 <html> 9 <head> 10 <title>Insert title here</title> 11 </head> 12 <body> 13 <jsp:useBean id="p" class="cn.gs.ly.mvc.domain.Person"></jsp:useBean> 14 <jsp:setProperty property="name" name="p" value="刘超"></jsp:setProperty> 15 <!--获得属性三种方法 --> 16 方法1:<%=p.getName() %><br/> 17 方法2:<jsp:getProperty property="name" name="p" ></jsp:getProperty> <br/> 18 方法3:${p.name }====${p["name"]}====${p['name']}<hr/> 19 20 获取未赋值的gender1:<%=p.getGender() %><br/> 21 获取未赋值的gender2:<jsp:getProperty property="gender" name="p" ></jsp:getProperty> <br/> 22 获取未赋值的gender3:${p.gender }<hr/> 23 24 获得没有的对象:${p1.gender }<hr/> 25 26 <% 27 //依次从page-request-session-application 取值,都没有为空白 28 pageContext.setAttribute("pp", "pp1"); 29 pageContext.setAttribute("pp", "pp2",pageContext.REQUEST_SCOPE) ; 30 session.setAttribute("pp", "pp3"); 31 application.setAttribute("pp", "pp4"); 32 %> 33 1:${pp} 34 2:${requestScope.pp} 35 3:${pp} 36 4:${pp} 37 5:${pp} 38 <hr/> 39 40 ${p.address.city}<hr/> 41 ${p["class"]}<hr/> 42 43 <jsp:setProperty property="married" name="p" value="true"></jsp:setProperty> 44 ${p.married }<hr/> 45 46 ${pageContext.request.remoteAddr}<hr/> 47 ${pageContext.session.id}<hr/> 48 ${pageContext.request.method}<hr/> 49 ${pageContext.request.localName}<hr/> 50 51 <% 52 String str[] = {"数组元素a","数组元素b","数组元素c"}; 53 pageContext.setAttribute("s", str); 54 55 List list =new ArrayList(); 56 list.add("list集合元素a"); 57 list.add("list集合元素b"); 58 list.add("list集合元素c"); 59 pageContext.setAttribute("list", list); 60 61 Map map = new HashMap(); 62 map.put("a","map集合aa"); 63 map.put("b","map集合bb"); 64 map.put("c","map集合cc"); 65 pageContext.setAttribute("map", map); 66 67 Map map1 = new HashMap(); 68 map.put("1","map集合aa1"); 69 map.put("2","map集合bb2"); 70 map.put("3","map集合cc3"); 71 pageContext.setAttribute("map1", map); 72 73 Map map2 = new HashMap(); 74 map.put("1",new Person("刘超","",false )); 75 map.put("2",new Person("姜静","",false )); 76 map.put("3",new Person("王熙","",true )); 77 pageContext.setAttribute("map2", map); 78 %> 79 ${s[0]}<hr/> 80 ${list[0]}<hr/> 81 ${map.a}<hr/> 82 ${map["1"]}<hr/> 83 ${map2["3"].name}<hr/> 84 85 <!-- 86 浏览器出入下面网址(明文提交) 可获取明文提交的 参数 87 http://localhost:8080/WEB2018/Demo01.jsp?ref=liuyang&inst=inst1&inst=inst2&inst=inst3 88 --> 89 获取明文提交的参数方法1:<%=request.getParameter("ref") %> 90 获取明文提交的参数方法2:${param.ref}<hr/> 91 获取明文提交的多个参数方法:${paramValues.inst[0] } ${paramValues.inst[1] }<hr/> 92

            ${headerValues["accept"][0]}<hr/>
           ${header["accept-encoding"] }<hr/>
     
             Cookie:${cookie}<hr/>
             Cookie_name:${cookie["JSESSIONID"].name }<hr/>
             Cookie_value:${cookie["JSESSIONID"].value }<hr/>

             获得xml初始化参数:${initParam["info"]}<br/>

      93 <input type="text" value="${p.address.city}">

    94     
    95 </body>
    96 </html>

    3.web.xml 初始化配置

    1 <context-param><!-- 初始化参数 -->
    2 <param-name>info</param-name>
    3 <param-value>value_liuyang</param-value>
    4 </context-param>

    4.运行结果

     

  • 相关阅读:
    C语言实现链表
    获取两个数之间的随机数-java
    C#继承机制 多级继承
    C#继承机制 访问与隐藏基类成员
    C#继承机制 C#中的继承符合下列规则
    C#装箱与拆箱的研究
    C#箴言之用属性来访问类的私有成员
    C# 创建和初始化集合对象
    C# 常用函数和方法集汇总
    C# 多态与new关键字
  • 原文地址:https://www.cnblogs.com/liuyangv/p/8185944.html
Copyright © 2020-2023  润新知