JSP常用标签的使用

一.开始前的准备

1.导包

导入包的地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

2.新建项目后,在WEB-INF的lib中赋值jstl.jar和standard.jar,然后选择右击,add path

3.新建jsp文件,在开头添加下行,自定义标签,其中 的prefix表示下面使用的标签名

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

如果要使用函数,则再添加如下

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

二.核心标签的使用

这里要强调一下,寻找变量是先从page中寻找,然后是request,session,application

1.out

如下使用,其中default的作用就是如果user值为空或者是空字符串,就输出default中的字符串,

然后我又试着将user去掉,结果仍然和之前的结果一样

<%String user="";
%>
<c:out value="${user}" default="error"></c:out>

转义输出,设置escapeXml为false

<c:out value="<out标签>" escapeXml="false"></c:out>

2.set标签

将一个变量存储在哪一个scope中

如将取一个变量day,设其值为today,存的范围是session,下面是两种写法

<c:set value="today" var="day" scope="session"></c:set>
<c:set var="day" scope="session">today</c:set>

使用JavaBean进行设置

<jsp:useBean id="person" class="po.Student"></jsp:useBean>
<c:set target="${person}" property="usename" value="zhangsan"></c:set>
<c:out value="${person.usename}"></c:out>

3.remove标签:remove的是一个对象

4.choose -when-otherwise标签:相当于switch

5.forEach标签

下面是一个简单的应用

<%
List<String> fruits=new ArrayList<String>();
fruits.add("dsds");
fruits.add("dsooik");
%>
<c:forEach var="fruit" items="${fruits}">
  <c:out value="${fruit }"></c:out>
</c:forEach>

注意观察上面的代码和下面的代码的区别

<%
List<String> fruits=new ArrayList<String>();
fruits.add("dsds");
fruits.add("dsooik");
session.setAttribute("fruits", fruits);
%>
<br/>
<c:forEach var="fruit" items="${fruits}">
  <c:out value="${fruit }"></c:out>
</c:forEach>
<br/>

是的,它们的区别在于,后面的代码将list添加到了session的属性中,而上面的没有,因此在输出的时候上面的输出是没有结果的。

有人就会想说是因为上面的是局部变量,但当我们将其中的list声明成全局变量时,结果仍然没有改变。

可以说EL是从属性中去寻找的,但是一个页面中的全局变量难道不是page的属性吗?


当然还可以添加bejin,end,step,varStatus等变量

6.forTokens

类似于forEach,其中的items指定的是字符串,delims是分隔符,var是遍历的成员

<c:forTokens items="010-809-3389" delims="-" var="num">
  <c:out value="${num}"></c:out>
</c:forTokens>


7.import标签

import标签与include的区别在于import可以包含其他web应用程序

主要讲解一下它的context属性

第一新建一个JSTLDemo2项目,然后在其中新建NewFile.jsp界面。

在其它项目的JSP文件中引用如下

<c:import url="/NewFile.jsp" context="/JSTLDemo2"></c:import>


然后修改tomcat的路径,并在config的contex.xml中找到context,在其中添加crossContext=true,便完成了


8.redirect标签:效果和重定向一样


9.URL标签

在URL后面添加一个变量,为变量赋值,就可以访问其下面不同的子目录

<c:url value="http://localhost:8080/${partUrl }" var="newUrl" scope="session"></c:url>
<a href="${newUrl }">URL</a>

最后关于param

$(param.user)相当于<%=request.getParameter("user")%>
paramValues相当于request.getParameters("xxx")
例如:
$(paramValues.favorites[0])相当于<%=request.getParameters("favorites")[0]%>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值