JSTL
Posted xjs1874704478
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSTL相关的知识,希望对你有一定的参考价值。
JSTL介绍
--JSP标准标签库(JavaServerPages Standard Tag Library)
与EL表达式关系
--JSTL通常会与EL表达式合作实现JSP页面的编码
JSTL开发准备
--在JSP页面添加taglib指令:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
为什么要使用JSTL标签?
#在jsp中不建议直接书写Java代码(规范性问题)。
#EL表达式虽然可以解决“不用书写Java代码”问题,但是对于复杂的数据(如数组、集合等)取值会很麻烦。
#使用JSTL标签配合EL表达式能够很好的解决取复杂类型数据的问题,简化代码书写。
JSTL标签库所需jar包
jstl-1.2.jar
JSTL常用标签介绍
#通用标签 set、out、remove
#条件标签 if、choose
#迭代标签 forEach
*set标签:将值保存到指定范围里
--将value值存储到范围为scope的变量variable中
<c:set var="username" value="张三" scope="request"/>
*out标签:将结果输出显示
<c:out value="value"/>
*remove标签:删除指定域内数据
<c:remove var="username" scope="session"/>
代码示例:
1 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 2 <body> 3 <!-- set、out、remove --> 4 <c:set var="username" value="张三" scope="request"></c:set> 5 <c:out value="原值输出"></c:out><br> 6 <%=request.getAttribute("username") %><br> 7 <c:remove var="username" scope="request"/> 8 <%=request.getAttribute("username") %> 9 </body>
if使用
1 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 2 <body> 3 <c:set var="age" value="23" scope="request"></c:set> 4 <!-- if标签 5 test:判断的条件,如果条件为true,会执行标签体中的内容 6 --> 7 <c:if test="${age==23 }"> 8 您的年龄为23岁 9 </c:if> 10 hello world 11 </body>
结果:
您的年龄为23岁 hello world
choose标签的使用:
1 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 2 <body> 3 <c:set var="age" value="23" scope="request"></c:set> 4 <!-- choose标签 --> 5 <c:choose> 6 <c:when test="${age==23 }"> 7 您的年龄为23岁 8 </c:when> 9 <c:otherwise> 10 您的年龄不是23岁 11 </c:otherwise> 12 </c:choose> 13 </body>
结果:
您的年龄为23岁
forEach标签的使用:
1 public class JSTLELServlet extends HttpServlet { 2 3 public void doGet(HttpServletRequest request, HttpServletResponse response) 4 throws ServletException, IOException { 5 /* 6 * 1.首先创建一个List集合,我们往这个集合中存放多条数据 7 * 2.将存放多条数据的List集合保存到request域中 8 * 3.我们在jsp中取出request域中存放的list集合 9 */ 10 Map<String,Object> datamap1=new HashMap<String, Object>(); 11 datamap1.put("shopName", "联想笔记本"); 12 datamap1.put("address", "北京"); 13 datamap1.put("price", 5600); 14 Map<String,Object> datamap2=new HashMap<String, Object>(); 15 datamap2.put("shopName", "惠普笔记本"); 16 datamap2.put("address", "郑州"); 17 datamap2.put("price", 4999.00); 18 19 List<Map<String,Object>> lists=new ArrayList<Map<String,Object>>(); 20 lists.add(datamap1); 21 lists.add(datamap2); 22 23 request.setAttribute("lists", lists); 24 request.getRequestDispatcher("/2.jsp").forward(request, response); 25 } 26 27 }
2.jsp:
1 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 2 <body> 3 <table border="1" cellspacing="0px"> 4 <tr> 5 <td>商品名称</td> 6 <td>商品产地</td> 7 <td>商品价格</td> 8 </tr> 9 <c:forEach items="${lists }" var="Map"> 10 <tr> 11 <td>${Map.shopName }</td> 12 <td>${Map.address }</td> 13 <td>${Map.price }</td> 14 </tr> 15 </c:forEach> 16 </table> 17 </body>
结果:
以上是关于JSTL的主要内容,如果未能解决你的问题,请参考以下文章