jstl标签库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了jstl标签库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3548字,纯文字阅读大概需要6分钟。
内容图文
![jstl标签库](/upload/InfoBanner/zyjiaocheng/997/3957b04ab28b445b8cde05910fa063d3.jpg)
01_jstl标签库介绍
-
概述
- jstl (java standard tag libarary)
- 和el表达式结合使用,可以让功能更加强大!
-
环境准备
-
导入jar包
jstl.jar standard.jar
-
在jsp页面导入jstl标签库
- 使用taglib指令
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <% int num = 1; request.setAttribute("num" , num); %> <c:if test="${num eq 1}"> num等于1 </c:if> <c:if test="${num ne 1}"> num不等于1 </c:if>
-
02_jstl核心标签
-
set标签
- 向域对象(page域、request域、session域、application域)中存储数据
- var:参数名称
- scope:域
- value:参数值
<c:set var="msg" scope="request" value="hello jstl"></c:set> ${msg}
- 向域对象(page域、request域、session域、application域)中存储数据
-
remove标签
- 移除域对象中的数据
- var:参数名称
- scope:域
<c:remove var="msg" scope="request"></c:remove> ${msg}<br>
- 移除域对象中的数据
-
catch标签
- 捕获jsp页面的异常,相当于try…catch
- var:声明异常对象名称,比如:var=“e” ,变量e就可以接收异常对象
<c:catch var="e"> <% int num = 1 / 0; %> </c:catch> ${e}<br>
- 捕获jsp页面的异常,相当于try…catch
-
if标签
- 条件判断
- test :编写条件
<c:set var="num" value="2" scope="request"></c:set> <c:if test="${num == 1}"> num 等于 1 </c:if> <c:if test="${num != 1}"> num 不等于 1 </c:if>
- 条件判断
-
forEach标签
- 遍历集合或数组
- begin:开始
- end:结束
- step:步数
- var:元素名称
- items:集合/数组
- varStatus:元素状态对象
- first:是否是第一个元素
- last:是否是最后一个元素
- current:当前元素
- index“:当前脚标
<!-- 基本使用 --> <c:forEach begin="1" end="10" step="3" var="num"> ${num} </c:forEach> <% List<String> strs = new ArrayList<>(); strs.add("aaa"); strs.add("bbb"); strs.add("ccc"); request.setAttribute("strs",strs); %> <!-- 相当于普通for循环 --> <c:forEach begin="0" end="${strs.size() - 1}" step="1" var="i"> ${strs[i]} </c:forEach> <!-- 相当于增强for循环 --> <c:forEach var="str" items="${strs}" varStatus="status"> ${str}<br> ${status.current} -- ${status.index} -- ${status.first} -- ${status.last}<br> </c:forEach>
- 遍历集合或数组
-
forToken标签
- 分割字符串
- items:要分割的字符串
- delims:分割的规则
- var:分割产生的元素
<% String msg1 = "aaa--bbb--ccc"; request.setAttribute("msg1",msg1); %> <c:forTokens items="${msg1}" delims="--" var="sonMsg"> ${sonMsg} </c:forTokens>
- 分割字符串
03_jstl综合案例准备工作
-
导入jar包
-
ProductDao
public class ProductDaoImpl implements ProductDao { @Override public List<Product> selectProductList() throws Exception { return new QueryRunner(JDBCUtils.getDataSource()) .query("select * from tb_product", new BeanListHandler<Product>(Product.class)); } }
-
ProductServlet
@WebServlet(name = "ProductServlet" ,urlPatterns = "/selectProductList") public class ProductServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ProductDao productDao = new ProductDaoImpl(); try { List<Product> productList = productDao.selectProductList(); System.out.println(productList); } catch (Exception e) { e.printStackTrace(); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }
04_jstl综合案例功能完成
-
代码实现
- productList.jsp
<table border="1px" cellspacing="0px" cellpadding="10px" width="500px" height="200px"> <tr> <td>ID</td> <td>名称</td> <td>单价</td> <td>数量</td> <td>小计</td> </tr> <%--循环之前,总价为0--%> <c:set var="total" value="0" scope="page"></c:set> <c:forEach items="${productList}" var="product"> <%--forEach标签,循环一次就是一个小计!--%> <tr> <td>${product.id}</td> <td>${product.name}</td> <td>${product.price}</td> <td>${product.count}</td> <td>${product.price * product.count}</td> </tr> <c:set var="total" value="${total + product.price * product.count}" scope="page"></c:set> </c:forEach> <%--循环之后,计算出总价--%> <tr> <td colspan="5" align="right"> 总价:${total}元 </td> </tr> </table>
内容总结
以上是互联网集市为您收集整理的jstl标签库全部内容,希望文章能够帮你解决jstl标签库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。