zoukankan      html  css  js  c++  java
  • [转载]使用嵌入式 Tomcat 简化程序调试

     使用嵌入式 Tomcat 简化程序调试

    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

    FOREACH:

    <c:forEach items="${messages}"
    var="item"
    begin="0"
    end="9"
    step="1"
    varStatus="var">
    ……
    </c:forEach>




    OUT:

    <c:out value="${logininfo.username}"/>
    c:out>将value 中的内容输出到当前位置,这里也就是把logininfo 对象的
    username属性值输出到页面当前位置。
    ${……}是JSP2.0 中的Expression Language(EL)的语法。它定义了一个表达式,
    其中的表达式可以是一个常量(如上),也可以是一个具体的表达语句(如forEach循环体中
    的情况)。典型案例如下:
    Ø ${logininfo.username}
    这表明引用logininfo 对象的username 属性。我们可以通过“.”操作符引
    用对象的属性,也可以用“[]”引用对象属性,如${logininfo[username]}
    与${logininfo.username}达到了同样的效果。
    “[]”引用方式的意义在于,如果属性名中出现了特殊字符,如“.”或者“-”,
    此时就必须使用“[]”获取属性值以避免语法上的冲突(系统开发时应尽量避免
    这一现象的出现)。
    与之等同的JSP Script大致如下:
    LoginInfo logininfo =
    (LoginInfo)session.getAttribute(“logininfo”);
    String username = logininfo.getUsername();
    可以看到,EL大大节省了编码量。
    这里引出的另外一个问题就是,EL 将从哪里找到logininfo 对象,对于
    ${logininfo.username}这样的表达式而言,首先会从当前页面中寻找之前是
    否定义了变量logininfo,如果没有找到则依次到Request、Session、
    Application 范围内寻找,直到找到为止。如果直到最后依然没有找到匹配的
    变量,则返回null.
    如果我们需要指定变量的寻找范围,可以在EL表达式中指定搜寻范围:
    ${pageScope.logininfo.username}
    ${requestScope.logininfo.username}
    ${sessionScope.logininfo.username}
    ${applicationScope.logininfo.username}
    在Spring 中,所有逻辑处理单元返回的结果数据,都将作为Attribute 被放
    置到HttpServletRequest 对象中返回(具体实现可参见Spring 源码中
    org.springframework.web.servlet.view.InternalResourceView.
    exposeModelAsRequestAttributes方法的实现代码),也就是说Spring
    MVC 中,结果数据对象默认都是requestScope。因此,在Spring MVC 中,
    以下寻址方法应慎用:
    ${sessionScope.logininfo.username}
    ${applicationScope.logininfo.username}
    Ø ${1+2}
    结果为表达式计算结果,即整数值3。
    Ø ${i>1}
    如果变量值i>1的话,将返回bool类型true。与上例比较,可以发现EL会自
    动根据表达式计算结果返回不同的数据类型。
    表达式的写法与java代码中的表达式编写方式大致相同。



    IF / CHOOSE:

    <c:if test="${var.index % 2 == 0}">
    *
    </c:if>
    判定条件一般为一个EL表达式。
    <c:if>并没有提供else子句,使用的时候可能有些不便,此时我们可以通过<c:choose>
    tag来达到类似的目的:
    <c:choose>
    <c:when test="${var.index % 2 == 0}">
    *
    </c:when>
    <c:otherwise>
    !
    </c:otherwise>
    </c:choose>
    类似Java 中的switch 语句,<c:choose>提供了复杂判定条件下的简化处理手法。其
    中<c:when>子句类似case子句,可以出现多次。上面的代码,在奇数行时输出“*”号,
    而偶数行时输出“!”。
  • 相关阅读:
    拥塞避免
    计算机网络常考
    [CODEVS1014]装箱问题
    [CODEVS2055]集合划分
    [CODEVS3641]上帝选人
    [GRYZ2014]递增子序列最大和
    [GRYZ2014]最大连续子序列的和
    金矿模型看动归
    [CODEVS1220]数字三角形
    [CODEVS1294]全排列
  • 原文地址:https://www.cnblogs.com/liuzhuqing/p/7481101.html
Copyright © 2011-2022 走看看