JSTL与EL表达式

jstl           : http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm;

                介绍:http://docs.oracle.com/javaee/6/tutorial/doc/(http://docs.oracle.com/javaee/6/tutorial/doc/bnacj.html#bnaco)

                 api:http://tomcat.apache.org/taglibs/standard/apidocs/

struts2 tag: http://struts.apache.org/release/2.1.x/docs/tag-reference.html

 

 

javascript中小脚本遍历list(之前没有转换成json格式)

View Code
<script type="text/javascript" charset="UTF-8">

var productinfo= [
    <%List<Map<String, Object>> list = (List<Map<String, Object>>) request
                    .getAttribute("ProductItem");
            if (list != null && list.size() > 0) {
                for (int i = 0; i < list.size(); i++) {
                    try {
                        out.print("{code:\"" + list.get(i).get("PRODUCTCODE")
                                + "\",name:\"" + list.get(i).get("PRODUCTNAME")
                                + "\"}");
                        if (i != list.size() - 1) {
                            out.print(",");
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    } finally {

                    }
                }
            }%>
    ];

 jstl+EL遍历list map array

View Code
List:
<c:forEach var="student" items="${sessionScope.list}" varStatus="status">

index:${status.index }<br>
ID:${student.id }<br> 
Name:${student.name }<br>
Country:${student.address.country }<br>
City:${student.address.city }<br>
Street:${student.address.street } <br>

</c:forEach>


Map:
<c:forEach var="entry" items="${sessionScope.map}" begin="0" end="4" step="1" varStatus="status" >

index:${status.index }<br>
ID:${entry.key }<br> 
Name:${entry.value.name }<br>
Country:${entry.value.address.country }<br>
City:${entry.value.address.city }<br>
Street:${entry.value.address.street }<br> 

</c:forEach>


Array:
<c:forEach var="color" items="${sessionScope.colors}">
${color}<br>
</c:forEach>

 jstl函数库

View Code

函数

描述

fn:contains(string, substring)

如果参数string中包含参数substring,返回true

fn:containsignorecase(string, substring)

如果参数string中包含参数substring(忽略大小写),返回true

fn:endswith(string, suffix)

如果参数 string 以参数suffix结尾,返回true

fn:escapexml(string)

将有特殊意义的xml (和html)转换为对应的xml character entity code,并返回

fn:indexof(string, substring)

返回参数substring在参数string中第一次出现的位置

fn:join(array, separator)

将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。

fn:length(item)

返回参数item中包含元素的数量。参数item类型是数组、collection或者string。如果是string类型,返回值是string中的字符数。

fn:replace(string, before, after)

返回一个string对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果

fn:split(string, separator)

返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素

fn:startswith(string, prefix)

如果参数string以参数prefix开头,返回true

fn:substring(string, begin, end)

返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符

fn:substringafter(string, substring)

返回参数substring在参数string中后面的那一部分字符串

fn:substringbefore(string, substring)

返回参数substring在参数string中前面的那一部分字符串

fn:tolowercase(string)

将参数string所有的字符变为小写,并将其返回

fn:touppercase(string)

将参数string所有的字符变为大写,并将其返回

fn:trim(string)

去除参数string 首尾的空格,并将其返回

           //给遍历赋值,相当于 <% int example = 100+1; %>

<c:set var= "example" value="${100+1}" scope="session"  />

<s:set name="personName" value="person.name"/>

 

          //打印变量,相当于 <%=example%>

<c:out value="${example}" default="a default value"  escapeXml="true"/>

<s:property value="#personName" default="a default value" />  OGNL的#符号相当与EL的$符号

 

         //从session中移除变量 <% session.removeAttribute("example")%>

<c:remove var= "example" scope="session"/>

 

         //test里面是一个boolean的运算, var里面声明的变量则记录test的结果,scope指明这个变量的存在范围,有4个值,博文的第三点(JSP- 内置对象)

<c:if test= "${ 条件运算 }"  var= "varName" scope= "page"  />
        //条件为true时,执行的代码
</c:if>

<s:if test="%{false}"><div>Will Not Be Executed</div>

</s:if>

<s:elseif test="%{true}"><div>Will Be Executed</div>

</s:elseif>

<s:else> <div>Will Not Be Executed</div>

</s:else>

 

        //items中是遍历的集合变量,var里面声明集合中的单个对象名称为currentBook

<c:forEach var="currentBook" items="${sessionScope.titles}">
                …//显示书籍信息
</c:forEach>

<s:iterator value="defaultDimensionItemList" status="st" id="infn">

</s>

 

 

 

 

一、循环遍历集合
1、在jsp中引入标准函数声明
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 


2、若要判断集合的大小,则需要引入如下声明
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>


3、如何使用jstl判断集合是否为空
${user}为集合,user为集合名
<c:if test="${empty user}">无信息!</c:if>为空
<c:if test="${!empty user}">其它</c:if>非空

json集合判断是否为空:

 <c:choose>
    <c:when test="${'[null]' == coverageinfo}">//调试了好久,之前就写的${ null == coverageinfo} or ${empty coverageinfo}
       $(function(){
           var coverageinfo= [];
       });
    </c:when>
    <c:otherwise>
        $(function(){
          var coverageinfo= ${coverageinfo};
        });
    </c:otherwise>
    </c:choose>

 


4、如何取得集合的大小
${fn:length(sessionScope.键)}
${fn:length(map)}

取得json集合的大小:${covArr}.length;

取得字符串的长度 :${fn:length("hello")}

 


5、varStatus显示循环变量的状态
例:<c:forEach var="currentFood" items="${sessionScope.foods}" varStatus="status"
<c:if test="${status%2==1}">
.....................
</c:if>
</c:forEach>
其中status这个变量就记录了循环变量的状态

 


6、如何遍历Map集合
<c:forEach var="foodmap" items="${sessionScope.cart}" varStatus="status">
<c:set var="subtotal" value="${foodmap.value.bean.foodPrice*foodmap.value.quantity}"></c:set>
</c:forEach>
遍历Map集合的值:
foodmap:保存session中的map
foodmap.value:取得map的值,即获取保存在map中的一个对象
要获取对象中的数据,必须用foodmap.value.quantity去点对象的属性(quantity就是对象的属性)

 

 

7.遍历数字
  <c:if test="${totalPages>=1}">
      <a href="javascript:void(0)"  οnclick="goback()">上一页</a>
       <c:forEach begin="1" end="${totalPages}" var="i">
         <c:choose>
              <c:when test="${i != num}">
                 <a href="${path}/PageServlet?page=${i}&branchlevel=${branchlevel}&branchtype=${branchtype}">${i}</a>
              </c:when>
              <c:otherwise>
                 <a style="background-color: red" href="${path}/PageServlet?page=${i}&branchlevel=${branchlevel}&branchtype=${branchtype}">${i}</a>
              </c:otherwise>
          </c:choose>
       </c:forEach>
      <a href="javascript:void(0)" οnclick="nextpage()">下一页</a>
   </c:if>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值