百戰程序員——EL、JSTL
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標簽:
- <c:if>
- <c:choose>
- <c:each>
- <c:import>
百戰程序員——EL、JSTL