JSTL标签库

要使用jstl标签库必须使用standard-1.1.2.jarjstl-1.2.jar包:

如果没有可以去下载:http://download.csdn.net/download/alan_tw/10111766


可以下载例题中的源码: http://download.csdn.net/download/alan_tw/10116791


一、表达式标签:

1. 输出标签<c:out>

语法:无标签体:<c:out value=”” escapeXml=”true|false”/>

有标签体:<c:out value=”” escapeXml=”true|false”>defalutValue</c:out>

value:要输出的变量或者是表达式

escapeXml:指定是否转换特殊字符

eg

加载标签库:

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

body中输入如下:

escapeXml属性为ture时:<c:out value="数字1<hr>" escapeXml="true"/><br>

escapeXml属性为false时:<c:out value="数字2<hr>" escapeXml="false"/><br>

实现效果:

 

2. 变量设置标签<c:set>

语法:分有无标签体(和<c:out>一样)

1. <c:set var=”” value=”” scope=”page|request|session|application”/>  

2. <c:set var=”” scope=””>value </c:set>  //(1,2)在指定的范围里将value赋值给var

3. <c:set value=”” target=”” property=””/>

4. <c:set target=”” property=””> value</c:set>  //(3,4)value值赋值给target对象的property属性

var:变量名

value:变量值

scope:指定变量的作用域(默认为page

target:储存变量值或者标签体的目标对象

eg

先创建一个UserBean

package jstl;

public class UserInfo {

private Stringname;

public String getName() {

return name;

}

public void setName(Stringname) {

this.name =name;

}

}

jsp中使用UserBean

<jsp:useBean id="userInfo" class="jstl.UserInfo"/>

body中写入如下代码:

<c:set var="username" value="Alan"/>

<c:out value="username是:${username}"/><br>

<c:set value="UserBean_Name" property="name" target="${userInfo}"/>

<c:out value="这是userBean里的name:${userInfo.name}"></c:out>

实现结果:

 

3. 变量移除标签<c:remove>

语法:<c:remove var=”” scope=””/>

var:需要移除的变量

scope:用于指定变量的范围(pagerequestsessionapplication),如果不写,那么将分别在这四个中查找。

eg

<ul>

<li>定义request范围内的变量username1</li>

<c:set var="username1" value="Alan" scope="request"/>

username1的值为:<c:out value="${username1}"></c:out><br>

<li>定义request范围内的变量username1</li>

<c:remove var="username1" scope="request"/>

username1的值为:<c:out value="${username1}" default="null"></c:out><br>

</ul>

实现效果:

 

4. 捕获异常标签<c:catch>

语法:<c:catch var=””> ....  //可能有异常的代码  </c:catch>

var:可选,保存异常信息

eg

<c:catch> 

<c:out value="${0/0 }"/> </c:catch>

实现效果:

 

表示计算错误。

二、URL相关标签

1. 导入标签<c:import>

语法:<c:import url=”” [context=””] [scope=””] [var=””] [charEncoding=””]>

       .... 标签体

      </c:import>

url:被导入文件的url

context:上下文路径

var:指定变量名称

scope:变量的存在范围

charEncoding:导入文件的编码格式

eg

<c:import url="count.jsp"charEncoding="utf-8"></c:import>

(我准备的是count.jsp,任何一个页面都可以)

count.jsp实现的结果:

 

实现结果:

 

2. 动态生成URL标签<c:url>

语法:<c:url value=”” [var=””] [scope=””] [context=””]/>   或者

<c:url value=”” [var=””] [scope=””] [context=””]/>

<c:param name="" value=""/>

<c:param name="" value=""/>

</c:url>

value:指定要处理的url

context:上下文路径

var:用于指定变量的名称

scope:变量的存在范围

eg:准备了一个count.jsp页面(任何一个页面都可以)

代码如下:

<c:url var="path" value="count.jsp" scope="page">

<c:param name="user" value="mr"></c:param>

<c:param name="password" value="123456"></c:param>

</c:url>

<a href="${pageScope.path }">提交</a>

第一个的实现效果:

 

 

 

3. 重定向标签<c:redirect>

语法:<c:redirect url=”” [context=””]/>   或者

<c:redirect url=”” [context=””]>

<c:param name="" value=""/>

....

</c:redirect>

url:指定url

context:用于使用相对路径访问外部context资源时,指定资源的名字。

eg

<c:redirect url="count.jsp">

<c:param name="name" value="user"/>

</c:redirect>

实现效果:(直接跳转到count.jsp

 

 

4. 传递参数标签<c:param>

语法:<c:param name="" value=""/>

name:指定参数名

value:指定参数值

eg:如上例题(传给index.jsp)

index.jsp通过如下代码获取传递的值:

${param.name }

实现效果:

 

 

三、流程控制标签

1. 条件判断标签<c:if>

语法:<c:if text=”” condition=”” scope=””/>  或者

<c:if text=”” condition=”” scope=””>

标签体

</c:if>

text:指定条件表达式

var:指定变量名

scope:变量范围(page默认,request,session,application

eg

jstl3.jsp代码:

<c:redirect url="index1.jsp">

<c:param name="name" value="user"/>

</c:redirect>

index1.jsp代码:

<c:if var="result" test="${emptyparam.name }">

请实现跳转页面...

</c:if>

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

${param.name },欢迎!

</c:if>

实现效果:

直接进入index.jsp的结果如下图:

 

jstl3.jsp进入index1.jsp的结果如下图:

 

 

2. 条件测试标签<c:when>

语法: <c:when test=”condition”>

标签体

</c:when>

  test:条件表达式

 

3. 其它条件标签<c:otherwise>

语法:<c:otherwise>

标签体

</c:otherwise>

 

4. 条件选择标签<c:choose>

<c:choose>

标签体   --<c:when>,<c:otherwise>组成

</c:choose>

eg

创建jstl4.jsp

<c:redirect url="index2.jsp">

<c:param name="name" value="user"/>

</c:redirect>

创建index2.jsp

<c:choose>

<c:when test="${emptyparam.name }">

请实现跳转页面...

</c:when>

<c:otherwise>

${param.name },欢迎!

</c:otherwise>

</c:choose>

实现效果:

 

 

四、循环标签

1. 循环标签<c:forEach>

(1) 集合成员迭代:

语法:<c:forEach items="" [var=""] [varStatus=""] [begin=””] [end=””] [step=””]>

标签体

</c:forEach>

items:用于指定被遍历的对象

var:用于指定被循环的变量名

begin:指定循环的起始位置

end:指定循环的终止位置

step:指定循环的步长

varStatus:指定循环的状态变量(index索引值(0开始),count索引值(1开始),first是否为第一次循环,last是否为最后一次循环)

eg

编写jstl5.jsp

<%

List<String> list=new ArrayList<String>();

    list.add("第一");

    list.add("第二");

    list.add("第三");

    request.setAttribute("list", list);

%>

<b>遍历List集合</b><br>

<c:forEach items="${requestScope.list }" var="keyword" varStatus="id">

${id.index } ${keyword }<br>

</c:forEach>

效果如下:

 

(2) 数字索引迭代:

语法:<c:forEach begin=”” end=”” [var=""] [varStatus=""] [step=””]>

标签体

</c:forEach>

eg

<c:forEach var="i" begin=1 end=10 step=2>

${i } &nbsp;

</c:forEach>

实现效果:

 

 

2. 迭代标签<c:forTokens>

语法:<c:forTokens items=”” delims=”” [var=””] [begin=””] [end=””] [step=””] [varStatus=””]>

标签体

</c:forTokens>

items:要迭代的对象

delims:分隔字符串的分隔符

var:指定变量名

begin:迭代的开始位置

end:迭代的结束位置

step:迭代的步长

varStatus:用于指定循环的状态变量(和forChoose一样)

eg

创建jstl6.jsp

<c:set var="name" value="兴趣爱好:篮球;羽毛球;足球"></c:set>

<b>分割前的字符串:</b><c:out value="${name }"></c:out><br>

<b>分割后的字符串:</b><br>

<c:forTokens items="${name }" delims=": ;" var="item">

${item }<br>

</c:forTokens>

实现效果如下:

 


 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值