JSP、EL和JSTL-学习笔记04【JSTL常用标签】 淡淡的烟草味﹌ 2022-10-29 14:27 134阅读 0赞 > * **[Java后端 学习路线 笔记汇总表【黑马程序员】][Java_ _]** > > 1. [JSP、EL和JSTL-学习笔记01【JSP基础语法】][JSP_EL_JSTL-_01_JSP] > 2. [JSP、EL和JSTL-学习笔记02【MVC】][JSP_EL_JSTL-_02_MVC] > 3. [JSP、EL和JSTL-学习笔记03【EL介绍和运算符、EL获取域中存储的数据】][JSP_EL_JSTL-_03_EL_EL] > 4. [JSP、EL和JSTL-学习笔记04【JSTL常用标签】][JSP_EL_JSTL-_04_JSTL] **目录** 第5节 JSTL常用标签 JSTL\_概述 JSTL\_常用标签\_if JSTL\_常用标签\_choose JSTL\_常用标签\_foreach 1、foreach普通遍历 2、foreach遍历容器 JSTL\_练习 User.java jstl\_test.jsp -------------------- # 第5节 JSTL常用标签 # ## JSTL\_概述 ## > **JSTL** > > 1. 概念:JavaServer Pages Tag Library JSP标准标签库 > \* 是由Apache组织提供的开源的免费的jsp标签 <标签> > > 2. 作用:用于简化和替换jsp页面上的java代码 > > 3. 使用步骤: > 1. 导入jstl相关jar包 > 2. 引入标签库:taglib指令: <%@ taglib %> > 3. 使用标签 ## JSTL\_常用标签\_if ## > **JSTL** > 1. 概念:JavaServer Pages Tag Library,JSP标准标签库 > \* 是由Apache组织提供的开源的免费的jsp标签。(<标签>) > > 2. 作用:用于简化和替换jsp页面上的java代码。 > > 3. 使用步骤: > 1. 导入jstl相关jar包 > 2. 引入标签库:taglib指令: <%@ taglib %> > 3. 使用标签 > > 4. 常用的JSTL标签 > 1. if:相当于java代码的if语句。 > 1. 属性: > \* test 必须属性,接受boolean表达式 > \* 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容 > \* 一般情况下,test属性值会结合el表达式一起使用 > 2. 注意: > \* c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签 > 2. choose:相当于java代码的switch语句。 > 3. foreach:相当于java代码的for语句。 > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70][] > > ![20210215205227565.png][] > > ![20210215205302493.png][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 1][] > > ![20210215205321784.png][] ## JSTL\_常用标签\_choose ## > JSTL > 1. 概念:JavaServer Pages Tag Library,JSP标准标签库 > \* 是由Apache组织提供的开源的免费的jsp标签。(<标签>) > > 2. 作用:用于简化和替换jsp页面上的java代码。 > > 3. 使用步骤: > 1. 导入jstl相关jar包 > 2. 引入标签库:taglib指令: <%@ taglib %> > 3. 使用标签 > > 4. 常用的JSTL标签 > 1. if:相当于java代码的if语句。 > 1. 属性: > \* test 必须属性,接受boolean表达式 > \* 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容 > \* 一般情况下,test属性值会结合el表达式一起使用 > 2. 注意: > \* c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签 > 2. choose:相当于java代码的switch语句。 > 1. 使用choose标签声明 相当于switch声明 > 2. 使用when标签做判断 相当于case > 3. 使用otherwise标签做其他情况的声明 相当于default > 3. foreach:相当于java代码的for语句。 > <%-- > 完成数字编号对应星期几案例 > 1.域中存储一数字 > 2.使用choose标签取出数字 相当于switch声明 > 3.使用when标签做数字判断 相当于case > 4.otherwise标签做其他情况的声明 相当于default > --%> > > ![20210215210036740.png][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 2][] ## JSTL\_常用标签\_foreach ## > **foreach:相当于java代码的for语句。** > ** 1. 完成重复的操作** > for(int i = 0; i < 10; i ++)\{ > \} > \* 属性: > begin:开始值 > end:结束值 > var:临时变量 > step:步长 > varStatus:循环状态对象 > index:容器中元素的索引,从0开始 > count:循环次数,从1开始 > ** 2. 遍历容器** > List<User> list; > for(User user : list)\{ > \} > \* 属性: > items:容器对象 > var:容器中元素的临时变量 > varStatus:循环状态对象 > index:容器中元素的索引,从0开始 > count:循环次数,从1开始 ### 1、foreach普通遍历 ### > ![20210215210755675.png][] > > ![20210215211713339.png][] ### 2、foreach遍历容器 ### > ![20210215212132714.png][] ## JSTL\_练习 ## > **JSTL** > > 1. 概念:JavaServer Pages Tag Library,JSP标准标签库 > \* 是由Apache组织提供的开源的免费的jsp标签。(<标签>) > > 2. 作用:用于简化和替换jsp页面上的java代码。 > > 3. 使用步骤: > 1. 导入jstl相关jar包 > 2. 引入标签库:taglib指令: <%@ taglib %> > 3. 使用标签 > > 4. 常用的JSTL标签 > 1. if:相当于java代码的if语句。 > 1. 属性: > \* test 必须属性,接受boolean表达式 > \* 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容 > \* 一般情况下,test属性值会结合el表达式一起使用 > 2. 注意: > \* c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签 > 2. choose:相当于java代码的switch语句。 > 1. 使用choose标签声明 相当于switch声明 > 2. 使用when标签做判断 相当于case > 3. 使用otherwise标签做其他情况的声明 相当于default > 3. foreach:相当于java代码的for语句。 > > 5. 练习: > \* 需求:在request域中有一个存有User对象的List集合。需要使用jstl+el,将list集合数据展示到jsp页面的表格table中。 > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 3][] > > ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 4][] ### User.java ### package cn.itcast.domain; import java.text.SimpleDateFormat; import java.util.Date; public class User { private String name; private int age; private Date birthday; public User(String name, int age, Date birthday) { this.name = name; this.age = age; this.birthday = birthday; } public User() { } /** * 逻辑视图 * * @return */ public String getBirStr() { if (birthday != null) { //1.格式化日期对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //2.返回字符串即可 return sdf.format(birthday); } else { return ""; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } } ### jstl\_test.jsp ### <%@ page import="cn.itcast.domain.User" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Date" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>test</title> </head> <body> <% List list = new ArrayList(); list.add(new User("张三", 23, new Date())); list.add(new User("李四", 24, new Date())); list.add(new User("王五", 25, new Date())); request.setAttribute("list", list); %> <table border="1" width="500" align="center"> <tr> <th>编号</th> <th>姓名</th> <th>年龄</th> <th>生日</th> </tr> <%--数据行--%> <c:forEach items="${list}" var="user" varStatus="s"> <c:if test="${s.count % 2 != 0}"> <tr bgcolor="red"> <td>${s.count}</td> <td>${user.name}</td> <td>${user.age}</td> <td>${user.birStr}</td> </tr> </c:if> <c:if test="${s.count % 2 == 0}"> <tr bgcolor="green"> <td>${s.count}</td> <td>${user.name}</td> <td>${user.age}</td> <td>${user.birStr}</td> </tr> </c:if> </c:forEach> </table> </body> </html> > 加油~ [Java_ _]: https://blog.csdn.net/weixin_44949135/article/details/113773297 [JSP_EL_JSTL-_01_JSP]: https://blog.csdn.net/weixin_44949135/article/details/113815468 [JSP_EL_JSTL-_02_MVC]: https://blog.csdn.net/weixin_44949135/article/details/113816376 [JSP_EL_JSTL-_03_EL_EL]: https://blog.csdn.net/weixin_44949135/article/details/113816912 [JSP_EL_JSTL-_04_JSTL]: https://blog.csdn.net/weixin_44949135/article/details/113818479 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70]: /images/20221024/8d629acea6984686a5a90204f90c7570.png [20210215205227565.png]: /images/20221024/574cc75e12e3426e80aae809a3e065a4.png [20210215205302493.png]: /images/20221024/546480bce7d04957823962b29da3cccf.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 1]: /images/20221024/42e2fa4289df49428403c4825499e635.png [20210215205321784.png]: /images/20221024/8b89684907e94df494fb83f85afe7b39.png [20210215210036740.png]: /images/20221024/dcbe16ef42a94ed484781f318781eb7b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 2]: /images/20221024/21131f70af7e454cb1769cfaa930fff8.png [20210215210755675.png]: /images/20221024/4675c6e7a7ff4433a1499611a976abe2.png [20210215211713339.png]: /images/20221024/497cd8269b054cceaee427b64fb682c0.png [20210215212132714.png]: /images/20221024/6280c7b72c8548719d6b2cc14f36baa1.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 3]: /images/20221024/08be3a1177894d9a850d699eadc96b76.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDk0OTEzNQ_size_16_color_FFFFFF_t_70 4]: /images/20221024/e18efa6ca7fb452591274c42bbf09891.png
还没有评论,来说两句吧...