JSTL标准标签库

1、JSTL简介

JSTL:( JSPStandard Tag Library ) JSP标准标签库
JSP标签是Sun公司定义的一套标准,由Apache组织基于这套标准开发的一套标签库后又转给Sun公司,被称为JSTL,成为了JavaEE5.0的核心

2、如何使用JSTL?

将JSTL标签对应的jar文件拷贝到WEB-INF/lib目录下


使用taglib指令导入要使用的JSP标签 <%@taglib uri="" prefix=""%>
uri:JSP标签的命名空间
prefix:命名空间的前缀

3、JSTL标签库分类
core:核心标签库
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
fmt:格式化标签库
<%@taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
sql:数据库标签库
<%@taglib prefix="s" uri="http://java.sun.com/jstl/sql" %>
xml:xml标签库
<%@taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
JSTL 函数
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>


4、常用的标签
if标签的使用:实现Java语言中if语句的功能:
  <c:if test="codition" var="name" scope="applicationArea">
    ...
    </c:if>

test:判断表达式返回true/false
var: 用于存储条件结果的变量
scope: var属性的作用域

forEach标签:实现对集合中对象的遍历

    <c:forEach items="" var="" begin="" end="" step="" varStatus="">
    --循环体代码--
    </c:forEach>

其中,items指定要遍历的集合对象;
var指定当前成员的引用;
begin指定从集合的第几位开始;
end指定迭代到集合的第几位结束;
step指定循环的步长;
varStatus属性用于存放var引用的成员的相关信息,如索引等


5、使用案例

本案例使用三层结构(表现层、服务层、持久层),在表现层(Userservlet)调用服务层的查询所有用户的方法查询所有的用户返回一个List集合,这里只是列出主要的步骤,查询方法的实现就不列出。

Users.java 如下:

package cn.sz.pojo;

import java.io.Serializable;
import java.util.Date;

public class Users implements Serializable {
	private Integer userId;
	private String loginName;
	private String loginPwd;
	private String realName;
	private Date birthday;
	private String userDesc;
	private String money;

	public Users() {
		super();
	}

	public Users(Integer userId, String loginName, String loginPwd, String realName, Date birthday, String userDesc,
			String money) {
		this.userId = userId;
		this.loginName = loginName;
		this.loginPwd = loginPwd;
		this.realName = realName;
		this.birthday = birthday;
		this.userDesc = userDesc;
		this.money = money;
	}

	public Integer getUserId() {
		return userId;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	public String getLoginPwd() {
		return loginPwd;
	}

	public void setLoginPwd(String loginPwd) {
		this.loginPwd = loginPwd;
	}

	public String getRealName() {
		return realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String getUserDesc() {
		return userDesc;
	}

	public void setUserDesc(String userDesc) {
		this.userDesc = userDesc;
	}

	public String getMoney() {
		return money;
	}

	public void setMoney(String money) {
		this.money = money;
	}

}

表现层(Userservlet.java):

public class UserServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 调用service层的查询方法
		IUserService userbiz = new UserServiceImpl();
		List<Users> list = userbiz.findAllUsers();
		// 用request保存查询结果
		request.setAttribute("list", list);
		// 跳转到user_list.jsp页面
		request.getRequestDispatcher("user_list.jsp").forward(request, response);
	}

}

web.xml:

<servlet>
   
    <servlet-name>UserServlet</servlet-name>
    <servlet-class>cn.sz.servlet.UserServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>UserServlet</servlet-name>
    <url-pattern>/UserServlet</url-pattern>
  </servlet-mapping>

user_list.jsp页面如下:

<%--设置 isElIgnored="false",打开EL表达式的支持--%>
<%@ page isELIgnored="false" contentType="text/html;charset=UTF-8"
	language="java"%>
<%--引入JSTL核心标签库--%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%--引入JSTL格式化标签库--%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%--引入JJSTL 函数标签库--%>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
</head>
<body>
	<h3>user_list.jsp显示用户信息页面</h3>
	<table border="1" width="800" cellspacing="0">
		<tr>
			<th>编号</th>
			<th>登录名</th>
			<th>真实姓名</th>
			<th>出生日期</th>
			<th>个人简介</th>
			<th>工资</th>
			<th>操作</th>
		</tr>
		<c:if test="${list==null }">
			<tr>
				<td colspan="7">没有数据</td>
			</tr>
		</c:if>
		
		<c:forEach items="${list }" var="u" varStatus="uindex">
			<!-- count,index都表示行的索引号,count从1开始;index从0开始 -->
			<!-- 如果是偶数行,为该行换背景颜色 -->
			<tr <c:if test="uindex.count%2==0">bgcolor="gray"</c:if>>
				<td>${u.userId }</td>
				<td>${u.loginName }</td>
				<td>${u.realName }</td>
				<td>
					<!--格式化时间--> <fmt:formatDate value="${u.birthday }"
						pattern="yyyy-MM-dd HH:mm:ss" />
				</td>
				<td>
					<!--截取15个字符,多余的用...代替--> <!-- ${u.userDesc } -->
					${fn:substring(u.userDesc,0,15) } ${fn:length(u.userDesc)>15 ? "...":"" }
				</td>
				<td>
					<!--格式化工资--> <fmt:formatNumber value="${u.money }"
						pattern="¥0000.00" />
				</td>
				<td></td>
			</tr>
		</c:forEach>


	</table>
</body>
</html>

结果




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值