1. 程式人生 > >百戰程序員——EL、JSTL

百戰程序員——EL、JSTL

import ali body pty 下標 文檔 普通 一個 ont

  1、EL表達式可以操作作用域中的屬性,也可以操作普通的局部變量。對嗎?

    不對

    El表達式一般支持作用域(application、session、request、pagecontext)中的屬性。EL變量只支持某一作用域中的屬性。

    註意:EL表達式不能操作局部變量

  2、pageScope、requestScope、sessionScope、applicationScope分別指哪幾個
作用域對象?

  $(hello):el搜索順序:pageScope, requestScope, sessionScope, applicationScope;

也可以直接寫:$(requestScope.hello}

  3、【上機】用EL表達式實現如下Java代碼表示的功能:

<%= ((User)request.getAttribute("u")).getName() %>

<%=request.getParameter("a") %>

<%=request.getParameterValues("b")[0] %>

<%= ((User)(((Map)pageContext.getAttribute("us")).get("u1"))).getName() %>

  4、EL表達式如何讀取map中的元素?請用代碼實現

  

   <c:forEach items="${lists }" var="s">
        <tr>
            <td>${s.name }</td>
            <td>${s.score}</td>
            <td>${map[s.id]}</td>
        </tr>
    </c:forEach>

  5、說出下面兩種寫法各自的優勢:

${u.name} ${u["name"]}

說出下面兩種EL表達式寫法的優點?(’.‘取值和’[]‘取值)

  ${paramValues.name}可以取得所有同名參數的值
${paramValues.hobbies[0]}可以通過指定下標來訪問特定的參數的值

${param.name} 和 ${param["name"]} 是等價的,但是當要存取的屬性名稱中包含有一些特殊字符如 "." 或 "-" 等非字母或數字的符號 或者 在使用動態取值時,就一定要使用 "[]" 運算符。

如果要動態取值時,就可以用“[ ]“來做,而“.“無法做到動態取值。例如:${sessionScope.user[data]}中data 是一個變量

  6、${"1"+3}返回的是"13"還是"4".說出理由。

    4

    不能用於字符串拼接,只能用於算術運算

  7、請說出empty操作符的判斷什麽對象返回true?

  

  empty運算是判斷一個對象或者集合是否為空。返回boolean值。

    對象為null時,返回true

    如果是空的字符串,返回true

    如果是空的Object數組(Object數組.length == 0),返回true

    空的集合,返回true

    空的map,返回true

https://www.cnblogs.com/limingxian537423/p/7056911.html(jsp使用文檔)

  8、【上機】完成老師課堂上的代碼,寫出自己的測試代碼。

  9、【上機】重點練習如下JSTL標簽:

  1. <c:if>
  2. <c:choose>
  3. <c:each>
  4. <c:import>

百戰程序員——EL、JSTL