JSTL标准标签库 Myth丶恋晨 2022-06-07 03:47 190阅读 0赞 **1、JSTL简介** JSTL:( JSPStandard Tag Library ) JSP标准标签库 JSP标签是Sun公司定义的一套标准,由Apache组织基于这套标准开发的一套标签库后又转给Sun公司,被称为JSTL,成为了JavaEE5.0的核心 **2、如何使用JSTL?** 将JSTL标签对应的jar文件拷贝到WEB-INF/lib目录下 ![Center][] 使用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> 结果: ![Center 1][] [Center]: /images/20220607/31783a29381545a0a5021bdf963efd62.png [Center 1]: /images/20220607/d9df39f6f4d54da4baa9a5f30a92f3cc.png
还没有评论,来说两句吧...