百战程序员——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标签:

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

猜你喜欢

转载自www.cnblogs.com/lshaoyu/p/10504392.html
今日推荐