标准标签库STL基本用法文档
标准标签库JSTL基本用法
标准标签是JSP提供的库文件,所以在使用之前需要将库文件的jar包导入到工程中去,导入方法如下:
选择1.1版本,导入之后,在工程的lib中添加了两个jar包—jstl.jar和standerd.jar,如下图:
我们所用到的标准标签的class文件就在这里面。
同时,在web-inf中也添加了很多tld文件,来配置后台处理类
打开c.tld配置文件,比较它和我们以前自定义的tld配置文件的内容是否一样。
注意:在使用标签之前一定要声明taglib指令:
<%@ taglib uri="https://www.360docs.net/doc/c69020994.html,/jsp/jstl/core" prefix="c"%> 其中uri在标准标签的c.tld(standerd.jar)中有定义。
?基本标签c:out 的用法
–作用
?使用JspWriter输出字符串、变量、JavaBean属性值
–用法举例
?输出一个字符串,或者变量的值
–
?输出一个变量,先在request中共享一个变量name:
<%
request.setAttribute("name","amaker");
request.setAttribute("user",u);
%>
–
?输出一个JavaBean的属性
1)写一个JavaBean:User,生成get set方法
2)在声明中要import包,或者usebean
<%@ page language="java" import="java.util.*,com.amaker.bean.*" pageEncoding="gbk"%> 3)创建User对象
<%
User u = new User();
u.setId(1);
u.setName("tom");
request.setAttribute("user",u);
%>
4)声明taglib指令
<%@ taglib uri="https://www.360docs.net/doc/c69020994.html,/jsp/jstl/core" prefix="c"%>
5)在页面上输出一个JavaBean的值
输出一个Java Bean 属性
?基本标签c:set 的用法
–作用
?在某个作用域中设置变量或JavaBean的属性值
–用法举例
?使用value 设置特定范围内变量的值
使用Value设置变量的值
?使用body设置特定范围内变量的值
使用body设置变量的值
?设置对象的属性,使用target、property、value
给JavaBean赋值
?指定范围内设定变量的值,并在不同的位置取这个变量,观察什么时候能取到这个变量(JSP共享变量的四个作用域:page request session application)
(1)在各个作用域中共享变量
指定变量的Scope
(2)在当前页面来取变量,四个都能取到
(3)新建一个jsp页面test_c_set.jsp,用c: out标签取四个变量,在共享变量的页面请求转发到test_c_set.jsp页面,只能取到前三个。(请求转发还是原来的请求,request中变量还能取到)
(注意:转发页面也要使用标准标签指令!!)
(4)直接到浏览器中输入
http://localhost:8080/JSP_JSTL/test_c_set.jsp,就只能取到前两个
(5)关闭浏览器,重新打开,只能取到第一个了。
?条件判断标签c:if 的用法
–作用
?条件判断输出
–例如:根据用户的权限,来显示页面(如:是否有删除权限)
–用法举例
例1、判断是否admin权限,是则能使用删除按钮,否则删除按钮为不可用状态。
C IF
<%
request.setAttribute("username","zs");
%>
例2、
你的年龄太小,不能访问该页面!
?条件判断标签c:choose、c:when、c:otherwise 的用法
–作用
?判断多重条件,这个三个标签必须一起使用
–用法举例:判断成绩的区间,分别给出优秀、良好、一般的等级。
C Choose
<%
request.setAttribute("score",50);
%>
?迭代循环c:forEach的用法(重要!!!)
–作用
?迭代循环输出集合中的元素。
–用法(有三种)
?用法1:简单迭代举例
1、从集合中取出元素,显示到页面上(一般来说,集合中的元素是从数据库中得到的,我们这里为了简约起见,直接创建一个ArrayList元素,并将其共享到request中)
步骤1:创建集合元素
<%
List list = new ArrayList();
for(int i=0;i<10;i++)
{
User u = new User();
u.setId(i);
u.setName("name"+i);
list.add(u);
}
request.setAttribute("UserList",list);
%>
步骤2:先看,如果不用标签,采用Java代码如何写:
ID | Name |
---|---|
"); out.println(u2.getId()); out.println(" | ");"); out.println(u2.getName()); out.println(" | ");
步骤3:采用标签
ID | Name |
---|---|
<%-- ${user.id} | <%-- ${https://www.360docs.net/doc/c69020994.html,} |
可以看到,如果不使用标签,那么需要用Java代码动态拼出一个table,比较麻烦,和页面的效果结合非常困难,而采用标签则非常简单。
?用法2:固定次数迭代
${k }
?用法3:固定次数,指定步长迭代
${k }
?用法4:获得迭代状态:通过属性status来获得迭代状态
ID | Name | index | count | first? | last? |
---|---|---|---|---|---|
${user.id} | ${https://www.360docs.net/doc/c69020994.html,} | ${status.index } | ${status.count } | ${status.first } | ${https://www.360docs.net/doc/c69020994.html,st } |