EL和JSTL表达式

一、EL表达式:
写法:        ${XXX}
取值范围:page、request、session、application

1、EL的取值
     1、对一般对象来说,如果取对象里的属性,那么必须有响应属性的get方法才能取到
     2、对于map等键值对保存的对象来说,直接${map1.key1}可取到map1中k1对应的值
     3、对于数组来说,可以通过${数组1[i]} 取到数组1中下标为i的元素
        
2、EL的param属性
     ${param.xxx}        相当于request.getAttribute("name")

3、EL的empty属性:
     判断是否空:${empty object}

4、EL的运算符:
     ${5+3}
     ${5-3}
     ${5*3}
     ${5/3}    或    ${5 div 3}
     ${5%3}    或    ${5 mod 3}
    
     ${empty 5>3}  或    ${5 gt 3}
     ${empty 5<3}  或    ${5 lt 3}
     ${empty 5==3} 或    ${5 eq 3}
     ${empty 5!=3} 或    ${5 ne 3}

5、其他用法:
     ${pageContext.request.contextPath}    绝对路径
     
     
     
     
二、JSTL的C标签:(与EL搭配使用)
    导入需要jstl.jar与standard.jar,并在jsp中通过taglib引入standard.jar——>META-INF——>c.tld中的uri
    
    1、<c:out
         <c:out value="${welcome}" escapeXml="false"/>
         escapeXml="true":    默认,会将value中的值直接输出
         escapeXml="false":    如果value的值是html标签,会以html格式输出,比如:字体变红...等等
    
    2、<c:set
         <c:set var="userid" value="root"/>
         userid:${userid}
    
    3、<c:remove
         <c:remove var="userid" />
         userid:${userid}
    
    4、<c:if
         <c:if test="testCondition"  var="varName"  scope="..."
            ...
         </c:if>
         
         <c:if  text="${sessionScope.user.role.roleId} == 2" >  错
         <c:if  text="${sessionScope.user.role.roleId == 2}" >  对
    
    5、<c:choose>
         <c:choose>
                <c:when test="...">
                        ...
                </c:when>
                <c:otherwise>
                        ...
                </c:otherwise>
         </c:choose>
         
    6、<c:forEach items="..."  var="..." varStatus="index(表示下标),count(表示第几个元素)"  step="..."  begin="..." end="...">
         
        下拉框选中:
    <select ...>
        <c:forEach  items="..."  var="...">
            <c:set var="selectedStr"/>
          <c:if test="...">
            <c:set var="selectedStr" value="selected"/>
          </c:if>
          <option value="..." ${selectedStr}>...</optiion>
        </c:forEach>
    </select>
             
         下拉框分页:
         <select  onChange="change(this.value)">
                <c:forEach  begin="0"  end="${requestScope.totalPageCount}"  varStatus="aaa">
                     <option  value="${aaa.count" 
                             <c:if  test="${requestScope.pageNum == aaa.count}">selected</c:if>
                     >
                    第${aaa.count}页
            </option>
    </c:forEach>
原文地址:https://www.cnblogs.com/shipeng22022/p/4614203.html