EL

EL在jsp页面中来存取数据

有“.”和“[]”两种,"[]"用来包含一些特殊的字符,如?或非字母的符号。

比如:pageContext.setAttribute("name-1", "value1");存

  取:${pageScope["name-1"] }<br/>    在页面中显示 value1

    ${pageScope.name-1}<br/>    在页面中就是  -1

[]   也可以动态取值,“.”就无法做到 ${sessionScope.user[data]}中data 是一个变量

   属性范围在EL中的名称
         Page          PageScope
         Request          RequestScope
         Session          SessionScope
         Application      ApplicationScope

<%@ page isELIgnored="true"%> 表示是否禁用EL语句,

默认以page,request.session.application的顺序来寻找EL中所指定的属性。

设置数组作为属性:

  <%
    String names[]={"heluwei","wanweiru","wangyan"};
    request.setAttribute("array",names);
%>
${array[0]}<br/>
${array[1]}<br/>

MAP:

  <%
    Map<String,String> map=new HashMap<String,String>();
    map.put("name","wanweiru");
    map.put("age","19");
    request.setAttribute("login", map);
%>
${login.name}<br/>
${login.age}<br/>

EL隐式对象:

  pageContext隐式对象:对应于PageContext类型,只要是getXxx()方法,用${pageContext.xxx}来取得。

  属性范围相关隐式对象:与属性范围相关的EL隐式对象:pageScope.requestScope.sessionScope.applicationScope分别可以取得使用JSP隐式对象:pageContext.request.session和application的setAttribute()方法所设置的属性对象。

  EL隐式对象:pageScope.requestScope.sessionScope和applicationScope不等同于JSP隐式对象:pageContext.request.session,application。EL隐式对象仅仅代表作用范围。

请求参数相关隐式对象:param和paramValues 举例来说:${param.user}其作用相当于<%=request.getParameter("user")%>

  paramValues相对于  request.getParameterValues()  可以取得窗体复选框的值。${paramValues.favorites[0]}相当于<%=request.getParameterValues("favorites")[0]%>

  标头相关隐式对象:取得用户请求的表头数据。header或headerValues

      例如:${header["User-Agent"]}  ----------><%=request.getHeader("User-Agent")%>

         headerValues相当于request.getHeaders()方法;

  cookie隐式对象:${cookie.username}

pageContext.findAttribute:先在page scope里找,如果找不到就到request scope里,再找不到就到session scope(if valid)里找,再找不到就到application scope(s)里找,再找不到就返回null。

pageContext.getAttribute:只在page scope里找,如果找不到就返回null。

 

  

posted @ 2016-06-29 21:18  陆伟  阅读(197)  评论(0编辑  收藏  举报