JSTL demo 说明


¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭┭
JSTL提供了4个主要的标签库:核心标签库、国际化标签库(I18N)与格式标签库、XML标签库、SQL标签库.
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
一二三四五六七八九〇

在这里,我使用了EL表达式和条件操作符来选择是否包含 html 中的 “selected”属性,只有符合条件的 “option” 才被添加 “selected” 属性。如果条件(param.artist==1)为真时,前面的“selected” 才被添加到网页中;否则就添加后面的(在这里是空字符串 ‘’)到页面中。
<select name="artist">
<option value="1" ${param.artist == 1 ? 'selected' : ''}>
Vesica Pisces
<option value="2" ${param.artist == 2 ? 'selected' : ''}>
Cortical Control
<option value="3" ${param.artist == 3 ? 'selected' : ''}>
Vida Vierra
</select>

★★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆★★
核心标签库
--通用标签
--条件标签
--迭代标签

--<c:out>
用法1.<c:out value = "在页面上输出d字符串">
2.<c:out value = "在页面上输出d字符串">***************</c:out> :标签体中的内容不输出
3.<c:out value="2<10" escapeXml="true"> :escapeXml确定是否应将(<,>,&...)转换成实体代码
4.<c:out value="${requestName}"/> :页面输出<request/session/application中的变量值>
5.<c:out value="${sameName}"/> :同上,会按照reqiest-session-app范围寻找变量输入值
6.<c:out value="${notex}" default="这个值不存在"/> :当变量不存在,输出default值

╀╁╁╁╁╁╁╁╁╁╁╂╂╂╂╂╂╂╂╂╂╃╃╃╃╂╁╁╀┿┿┾┾┽┽┽
--<c:set>
用法1.<c:set value="hellking" var="userName" scope= "page/request/.../application"/> :
<c:out value="${userName}"/> :往作用域对象中存放变量和值
2.<c:set var="name">
value
</c:set>
<c:out value="${name}"/> :设置name的属性,属性值在body中,然后输出这个属性值.
3.使用前提:<jsp:useBean id="test" class="com.test.Demo"/>
<c:set target="${user}" property="userName" value="name"/>
<c:set target="${user}" property="password">
value
</c:set>
userName=<c:out value="${user.userName}"/>,
password=<c:out value="${user.password}"/>.
设置javaBean的属性,然后输出这些属性值.
┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰
--<c:remove>
用法1.<c:set value="10000" var="maxUser" scope="application"/>
<c:remove var="maxUser" scope="application"/>
<c:out value="${maxUser}"/>
┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣┣
--条件标签
--<c:if>
用法1.
<jsp:useBean id="user" class="com.jspdev.ch3.TestBean"/>
<c:set value="16" target="${user}" property="age"/>
....
<c:if test="${user.age<18}">
对不起,你还的年龄过小,不能范围这个网页◎!
</c:if>
用法2.<c:if test = "testConditino" var = "varName" scope = "page/../application">
var指定test条件的变量的名称
scope指定var的范围
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
--<c:choose>
用法1.
<jsp:useBean id="user" class="com.jspdev.ch3.TestBean"/>
<c:set value="15" target="${user}" property="age"/>
<html>
...
<c:choose>
<c:when test="${user.age <=18}">
<font color="blue">
</c:when>
<c:when test="${user.age<=30&&user.age>18}">
<font color="red">
</c:when>
<c:otherwise>
<font color="green">
</c:otherwise>
</c:choose>
你的年龄是:<c:out value="${user.age}"/>
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
--迭代标签
--<c:forEach>
用法1.<c:forEach var="users" items="${users}">
<tr>
<td><c:out value="${users.userName}"/></td>
<td><c:out value="${users.password}"/></td>
<td><c:out value="${users.age}"/></td>
</tr>
</c:forEach>
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
--------------------------前提----------------------------
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ page import="java.util.*,com.jspdev.ch3.TestBean"%>
<%
Collection users=new ArrayList();
for(int i=0;i<5;i++)
{
TestBean user=new TestBean();
user.setUserName("guest"+i);
user.setPassword("guest1"+i);
user.setAge(20+i);
users.add(user);
}
session.setAttribute("users",users);
%>
-----------------------------------------------------------
2.<c:forEach var="i" begin="1" end="10">
<c:out value="${i}"/> -->
</c:forEach>

<c:forEach var="i" begin="1" end="10" step="3">
<c:out value="${i}"/> -->
</c:forEach>
3.<c:forEach var="users" items="${users}" begin="0" end="4" step="3">
<tr>
<td><c:out value="${users.userName}"/></td>
<td><c:out value="${users.password}"/></td>
<td><c:out value="${users.age}"/></td>
</tr>
</c:forEach>
前提:作用域通信对象中有users变量
4.<c:forEach var="users" items="${users}" varStatus="status">
<tr>
<td><c:out value="${users.userName}"/></td>
<td><c:out value="${users.password}"/></td>
<td><c:out value="${users.age}"/></td>
<td><c:out value="${status.index}"/></td>
<td><c:out value="${status.count}"/></td>
<td><c:if test="${status.first}">
<b></c:if>
<c:out value="${status.first}"/></b></td>
<td><c:if test="${status.last}">
<i> </c:if>
<c:out value="${status.last}"/></i></td>
</tr>
前提:作用域通信对象中有users变量
5.<%
int[] myIntArray=new int[]{1,2,3,4,5,65,34};
String[] myStringArray=new String[]{"I ","am ","a ","Java","fans"};

Vector v=new Vector();
v.add("this");
v.add("is");
v.add("myEnumeration");
v.add("!");
Enumeration myEnumeration=v.elements();

HashMap myNumberMap=new HashMap();
myNumberMap.put("hellking","23");
myNumberMap.put("guest","23");
myNumberMap.put("guest2","223");

request.setAttribute("myIntArray",myIntArray);
request.setAttribute("myStringArray",myStringArray);
request.setAttribute("myEnumeration",myEnumeration);
request.setAttribute("myNumberMap",myNumberMap);
%>

<c:forEach var="i" items="${myIntArray}">
<c:out value="${i}"/> ?
</c:forEach>

<c:forEach var="string" items="${myStringArray}">
<c:out value="${string}"/><br>
</c:forEach>

<c:forEach var="item" items="${myEnumeration}" begin="0" end="5" step="1">
<c:out value="${item}"/><br>
</c:forEach>

<c:forEach var="prop" items="${myNumberMap}" begin="1" end="5">
<c:out value="${prop.key}"/> = <c:out value="${prop.value}"/><br>
</c:forEach>

<c:forEach var="token" items="red,blue,green">
<c:out value="${token}"/><br>
</c:forEach>
--<c:forTokens>
用法1.<c:forTokens var="token" items="blue,red,green|yellow|pink,black|white" delims="|,">
<c:out value="${token}"/> ©
</c:forTokens>

用法2.<h4>使用 '-' 作为分割符</h4>
<c:forTokens var="token" items="blue--red--green--yellow--pink--black--white"
delims="--">
<c:out value="${token}"/> ©
</c:forTokens>

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值