JSP标签之jstl常用标签

JSTL标签

                   EL表达式可以通过JSTL标签迭代集合等功能

                   JSTL是SUN公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码

                   在JSP中使用JSTL标签需完成以下两个步骤

1、  导入jstl.jar和standerd.jar这两个JSTL的jar包

2、  在JSP页面使用<%@ tagliburl=” http://java.sun.com/jsp/jstl/core” prifix=”c” %> 元素导入标签库

url的地址是standerd.jar包中的/META-INF/c.tld文件中的<uri>http://java.sun.com/jsp/jstl/core</uri>标签中的地址

                   常用的JSTL标签

                            <c:foreach var=”” items=””>(迭代标签)

                              <%="<br/>-----------------------通过EL表达式配合JSTL来迭代list集合-------------------------------<br/>" %>

                 <%

                  //list集合中存入Demo1的对象

                  List<Demo1> list = newArrayList<Demo1>();

                  list.add(new Demo1("aaa"));//构造方法会为此对象的name属性赋值

                  list.add(new Demo1("bbb"));

                  list.add(new Demo1("ccc"));

                  request.setAttribute("list", list);

                %>

          

               <c:forEach var="demo1"items="${list }">

                  ${demo1.name }

               </c:forEach>

            <%--items="${list }" 通过EL表达式中取出这个集合,并将遍历的出的对象放入demo1变量中,

               然后在通过EL表达式调用li这个对象的getName方法

            --%>

          

           <%="<br/>-----------------------通过EL表达式配合JSTL来迭代map集合-------------------------------<br/>" %>

                 

           <%

                  //map集合中以键值对的方式存入Demo1对象

                  Map<String, Demo1> map = new HashMap<String,Demo1>();

                  map.put("d1", new Demo1("d111111"));//构造方法会为此对象的name属性赋值

                  map.put("d2", new Demo1("d222222"));

                  map.put("d3", new Demo1("d333333"));

                  map.put("d4", new Demo1("d444444"));

                 

                  request.setAttribute("map", map);

               %>

                 

               <c:forEach var="entry"items="${map }">

                  ${entry.key } : ${entry.value.name }

               </c:forEach>

               <%--

                  //上面entry变量得到的就相当于下面it得到的

                  Set<Map.Entry<String,Demo1>> set = map.entrySet();

                  Iterator<Map.Entry<String,Demo1>> it = set.iterator();

                 

                  //上面EL表达式所输出的就相当于下面out对象所输出的

                  while(it.hasNext()){

                      Map.Entry<String, Demo1>entry = it.next();  

                      out.print(entry.getKey()+":"+entry.getValue().getName());

                  }

                  也就是说当map集合对象被遍历出来的对象就是一个Map.Entry对象

                  ${entry.key} : ${entry.value.name }就是在在调用Map.EntrygetKey方法  

                  调用  Map.EntrygetValue方法再通过其返回对象,调用其对象的getName方法

               --%>

         

                            <c:if test=””>(测试标签,判断)

                                         <%="<br />-----------------------测试(判断)标签的使用-------------------------------<br />" %>

   

                   <%

                      //pageContext.setAttribute("user", "张三");

                   %>

 

                   <c:if test="${user!=null }">

                      pageContext域中的user值为:${user }

                   </c:if>

                   <c:if test="${user==null }"><!—EL表达式也可以用${empty user};表示如果usernull的话就返回ture,empty关键字还可以检测集合如:${empty map},意思是当map集合等于null,或者mapisEmpty()方法返回为true(也就是map中没有映射关系时) ,那么此EL表达式就返回false -->

                      pageContext域中没有值

                   </c:if>

                   <%--当在四个域中取到user的值(映射关系)后就输出第一句话,否则输出第二句话,也就是说当test的值为true时此标签中的内容才会被执行 --%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值