jstl标签

来源:互联网 发布:手机图片装饰软件 编辑:程序博客网 时间:2024/05/04 07:31

首先导入 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:out>标签

<%
     request.setAttribute("abc","用jstl输出request里的内容3!");
     session.setAttribute("abc", "用jstl输出session里的内容2!");
     application.setAttribute("abc", "用jstl输出application里的内容1!");
     pageContext.setAttribute("abc", "用jstl输出pageContext里的内容4!<a href='http://www.baidu.com'>百度</a>");
%>

<%    
     UserBean u=new UserBean();
     u.setName("小明");
     u.setAge(30);
     request.setAttribute("user1", u);
 %>

 

<body>
   <c:out value="hello,world"></c:out><br/><!-- 等同于out.println("hello,world"); -->
   <c:out value="${abc}" escapeXml="false" ></c:out><br/><!-- 优先级application<session<request<pageContext -->
   <!-- escapeXml 用于指定是否按照html样式显示,默认true[表示文本]false[html形式] -->
   <c:out value="${abc3}" default="没有值"></c:out><!-- 找不到abc3时显示defautl值 -->
  <h1>如何输出对象的指</h1>
  <c:out value="${user1.name}"></c:out>||<c:out value="${user1.age}"></c:out>
  <%=((UserBean)request.getAttribute("user1")).getName()%>

</body>

 

<c:set>标签

<body>
    <c:set var="abc" value="中国,北京" scope="request" ></c:set> <!--等同于request.setAttribute("abc","中国,北京") -->
    <c:out value="${abc}"></c:out>
</body>

 

<c:remove>标签

<body>

   <c:set var="abc" value="删除变量" scope="request"></c:set>
   <c:out value="${abc}"></c:out>
   <h1>remove</h1>
   <c:remove var="abc" scope="request"/><!-- 删除变量abc -->
   <c:out value="${abc}" default="没有了"></c:out>

</body>

 

<c:catch>标签

<body>

<c:catch var="myexception">
          <%int i=8/0; %>
    </c:catch>
    <c:out value="${myexception}"></c:out><br/><!-- 捕获异常信息 -->
    <c:out value="${myexception.message}"></c:out>

</body>

 

<c:if>标签

<%
  request.setAttribute("a", "hello");
  request.setAttribute("age", "56");

%>

<%
  //放入一个Rat对象
  Rat rat=new Rat();
  rat.setName("小宝");
  rat.setAge(6);
  request.setAttribute("rat1", rat);
%>

<body>
    <h1>判断字符串</h1>
  <c:if test="${a=='hello'}"><!-- 判断a值是否等于hello -->
  ok!
  </c:if>
  <c:if test="${a!='hello'}">
  on ok!
  </c:if> 
  <h1>判断数值</h1>
  <c:if test="${age==56}"><!-- age会自动换成整数值再进行判断 -->
  等于56
  </c:if>
  <c:if test="${age<56}" >
  小于56
  </c:if><br/>
  <c:if test="${age<60 and age>30}">
  age<60 and age>30
  </c:if>
  <h1>判断对象的属性</h1>
  <c:if test="${rat1.age>3}"><!-- 这里调用了getAge()方法 -->
  rat年龄大于3岁!
  </c:if>
</body>

 

<c:choose>标签

<body>
      <%
      Rat rat=new Rat();
      rat.setName("小宝");
      rat.setAge(6);
      request.setAttribute("rat1", rat);
      %>
      <c:choose>
      <c:when test="${rat1.age<=2}">
      age<=2
      </c:when>
      <c:when test="${rat1.age>2 and rat1.age<8}">
         2< age<8
      </c:when>
      <c:otherwise>
      age>=8
      </c:otherwise>
      </c:choose>
  </body>

 

<c:foreach>标签

  <%
  ArrayList<Rat> al=new ArrayList<Rat>();
  Rat rat1=new Rat();
  rat1.setName("小宝");
  rat1.setAge(2);
  Rat rat2=new Rat();
  rat2.setName("大宝");
  rat2.setAge(4);
  Rat rat3=new Rat();
  rat3.setName("老宝");
  rat3.setAge(8);
  //放入到al
  al.add(rat1);
  al.add(rat2);
  al.add(rat3);
  request.setAttribute("allrats", al);
  %>

 

<body>
    <h1>java代码取法</h1>
    <%
   ArrayList <Rat>al2=(ArrayList<Rat>)request.getAttribute("allrats");
    for(Rat rat:al2){
     out.println(rat.getName()+" "+rat.getAge());
    }
    %>
    <h1>foreach取法</h1>
    <c:forEach items="${allrats}" var="rat3">
    <c:out value="${rat3.name}"></c:out>
    <c:out value="${rat3.age}"></c:out>   
    </c:forEach>
</body>

 

<body>

   <h4>第二种迭代:1 to 10</h4>
  <c:forEach var="i" begin="1" end="10">
  <c:out value="${i}"></c:out>-->
  </c:forEach>
  <h4>第二种迭代:1 to 10,step=2</h4>
  <c:forEach var="i" begin="1" end="10" step="2">
  <c:out value="${i}"></c:out>-->
  </c:forEach>
  </center>

</body>

 

<body>
   <%
  //模拟
  Map map=new HashMap();
  map.put("db","大宝");
  map.put("xb","小宝");
  //把map放入某个域对象session request pageContext application
  request.setAttribute("person", map);
  %>

<h1>对map的迭代</h1>
  <c:forEach items="${person}" var="per"><!--  map 是键值对,要把键和值都取出来 -->
  key=<c:out value="${per.key}"></c:out>
  值=<c:out value="${per.value}"></c:out>
  </c:forEach>
</body>

 

<body>
<h1>在map对象的迭代</h1>

<%
Map map=new HashMap();
Rat rat1=new Rat();
rat1.setName("小宝");
rat1.setAge(2);
Rat rat2=new Rat();
rat2.setName("大宝");
rat2.setAge(4);
map.put("xb",rat1);
map.put("db",rat2);
request.setAttribute("rats", map);
%>

 

<c:forEach items="${rats}" var="rat">
    key=<c:out value="${rat.key}"></c:out><br/>
    value=<c:out value="${rat.value}"></c:out><br/>
    name=<c:out value="${rat.value.name}"></c:out><br/>
    age=<c:out value="${rat.value.age}"></c:out><br/>
    </c:forEach>
</body>

 

<body>
<h1>set集合jstl取法</h1>
 <%
 Set set=new HashSet();
 Rat rat1=new Rat();
 rat1.setName("小宝");
 rat1.setAge(2);
 Rat rat2=new Rat();
 rat2.setName("大宝");
 rat2.setAge(4);
 set.add(rat1);
 set.add(rat2);
 request.setAttribute("rats",set);
 %>

 

<c:forEach items="${rats}" var="rat">
    name=<c:out value="${rat.name}"></c:out>
    age=<c:out value="${rat.age}"></c:out><br/>
    </c:forEach>
  <h1>如何使用jstl去判断集合是否为空</h1>
  <c:if test="${empty rats}">
  没有rats
  </c:if>
  <c:if test="${!empty rats}">
  有rats
  </c:if>
</body>

 

<c:fortokens>标签

<%
  request.setAttribute("abc", "12;56;你好;ddd;aaaa;hhhh");
  %>
  <body>
    <h1>fortokens</h1>
    <c:forTokens items="${abc}" delims=";" var="temp">
    <c:out value="${temp}"></c:out>
    </c:forTokens><!-- 分割值放在临时变量temp -->
  </body>

 

<c:redirect>标签

<body>
    <h1>redirect标签</h1>
    <c:redirect url="http://www.baidu.com"></c:redirect>
</body>

 

<c:import><c:param>标签

<c:import url="a.jsp">
    <c:param name="name" value="shunping"></c:param><!--为a.jsp传递指定参数name="shunping" a.jsp中可用${param.name}获取这个值-->
</c:import><!-- 把a.jsp内容引进来 -->

<a href="a.jsp?id=123456">点击跳转到a.jsp</a><br/><!--在a.jsp中用${param.id}接受id,此el表达式相当于request.getParameter("id")-->

 

<其他>

jstl中定义String数组

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="arrayvalue" value="0,1,10,15,20" />
<c:set var="delim" value=","/> 
<c:set var="array" value="${fn:split(arrayvalue, delim)}"/>
<table border="1" align="center">
<tr><td>A</td><td>B</td></tr>
<c:forEach var="i" begin="0" end="5">
<tr>
<td><c:out value="${i}"/></td>
<td>
<c:out value="${array[i]}"/>
</tr>
</c:forEach>
</table> 

jstl foreach同时遍历两个list

<c:if test="${!empty medicines}">
          <c:forEach items="${medicines }" var="m" varStatus="loop">
          <input type="hidden" name="mdicines" value="${m}"/>
          <tr bgcolor="#EFF3F7" class="TableBody1" onmouseover="this.bgColor = '#DEE7FF';" onmouseout="this.bgColor='#EFF3F7';">
          <td align="center" vAlign="middle">${m.name }</td>
          <td align="center" vAlign="middle">${m.price }</td>
          <td align="center" vAlign="middle">${counts[loop.count-1]}</td>
          <td align="center" vAlign="middle">${m.price*counts[loop.count-1]}</td>  
        </c:forEach>
        </c:if>
在一个table中同时显示两个list的内容,这里的medicines 和counts是从后台传递过来的list集合,以为有一个字段是两个集合中某个属性的乘积${m.price*counts[loop.count-1]}


 

0 0
原创粉丝点击