栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用Servlet和JSP开发Java应用程序 ---- JSTL

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Servlet和JSP开发Java应用程序 ---- JSTL

使用Servlet和JSP开发Java应用程序 ---- JSTL
  • JSTL
  • JSTL - 核心标记库
    • 变量支持标记
      • c:set标记用于定义变量或修改变量的值
      • c:set设置已经存在的变量的值就是修变量的值
      • 如果不需要一个变量了,可用c:remove标记移除变量
    • 程序控制标记
      • if 标记-用于执行逻辑判断
      • c:choose标记-相当于if....else if....else if....else
      • forEach标记-用于执行循环任务,就是重复的任务,可进行简单的循环,也可用于遍历数组或集合
        • 使用forEach执行简单循环
        • 使用forEach遍历集合

JSTL
  • JSP Standard Tag Library - JSP 标准标记库
  • JSTL 是一个标准标记的集合,它可以让您再 JSP 页面中使用标记而不是 Java 代码执行任务
  • JSTL 分为以下几组
    • 核心标记库:包含执行基本功能的一些标记,如循环

使用 JSTL 需要添加 JSTL 相关的库,tomcat 服务器不包含 JSTL 的库
所以,使用 tomcat 服务器的情况下,要单独添加 JSTL 相关的 jar 包

JSTL - 核心标记库

变量支持标记 c:set标记用于定义变量或修改变量的值

c:set标记用于定义变量或修改变量的值,常用属性有:

  • var:用于指定变量的名称
  • value: 指定变量的值,也可用表达式指定值
  • scope: 指定变量的作用域,四个值:page(默认) | request | session | application

A. 定义不同范围的变量

            
            
            
            

B. 变量的值也可使用EL表达式或java表达式指定

            
            

C. 也可在标记内容中给出变量的值

            
                ${300 + 400}
            >

使用变量的值,直接使用EL表达式操作变量即可,${变量名},其实就相当于不同域对象中的属性

            

number1的值:${number1}
number2的值:${number2}
number3的值:${number3}
number4的值:${number4}
number5的值:${number5}
number6的值:${number6}
number7的值:${number7}

c:set设置已经存在的变量的值就是修变量的值

将number1的值在原来的基础上加上1000

            
            

number1的值:${number1}

如果不需要一个变量了,可用c:remove标记移除变量
            
            

number1的值:${number1}

程序控制标记

if 标记-用于执行逻辑判断

常用属性有:

  • test:指定判断的表达式,如果test的表达式成立,执行if的标记内容,否则不执行不执行标记内容
  • var:如果需要存储表达式的判断结果,可指定一个变量名
  • scope:scope指定变量的范围
                
                
                
                
                
                    

恭喜你,称为纳税人!!!

表达式判断结果存入result的值:${result}

c:choose标记-相当于if…else if…else if…else

c:when标记用于判断一种情况,如果成立,执行when标记内容
c:otherwise标记指定当所有的when都不成立的时候,执行otherwise标记的内容
choose中只会执行一种情况,哪个when先成立,就执行那个when标记的内容。

                
                
                
                
                    
                        

恭喜你,通过了考试~~~

很遗憾,你挂科了!!!

c:choose 中最好不要写注释

c:choose 中的语句只会输出一条,多个条件之间是互斥的关系 相当于 if … else if … else if … else …

                    
                
                
                    
                        

恭喜你,不用交税!

小土豪!

大土豪!!

大大大土豪!!!

forEach标记-用于执行循环任务,就是重复的任务,可进行简单的循环,也可用于遍历数组或集合

forEach可用于执行普通循环或遍历集合或数组,常用属性有:

  • items:指定要遍历的集合,一般用EL表达式获取
  • var: 一个变量名,用于代指遍历到的当前元素,nameList集合中每个元素都是一个字符串
  • var定义的变量只能在forEach循环内使用,通过EL表达式使用该变量${变量名}
  • step:只能是一个正数,用于指定增长的步长,默认值为1
使用forEach执行简单循环
                

| I love you !!! |

var 用于指定一个变量名,表示当前元素,可以在循环中使用 EL 表达式来操作该变量

                

${i}

使用forEach遍历集合

A. 遍历集合1 - 遍历固定的集合

  • items 属性用于指定要遍历的数组或集合
  • var 属性用于指定一个变量,表示遍历当前的元素,属性定义的变量只能在循环内使用,可以使用 EL 表达式访问该变量
  • 如果指定了 item 属性,那么begin 和 end 表示元素的起始和结束索引,索引从0开始
  • 如果指定了 item 、begin、end 属性,那么 step 步长用于指定索引增长
                

${item} |

${item} |

${item} |

B. 遍历集合2

                <%
                    List nameList = new ArrayList<>();
                    nameList.add("小胖");
                    nameList.add("小兰");
                    nameList.add("小强");
                    nameList.add("小呆");
                    //为了在EL表达式中可以操作该集合,需要将其作为属性添加到四个域对象中
                    pageContext.setAttribute("list1", nameList);

                    List dogList = new ArrayList<>();
                    dogList.add(new Dog("毛毛", "哈士奇", 2));
                    dogList.add(new Dog("强强", "泰迪", 1));
                    dogList.add(new Dog("二哈", "边牧", 3));
                    dogList.add(new Dog("乐乐", "单身狗", 20));
                    request.setAttribute("list2", dogList);

                    List productList = new ArrayList<>();
                    productList.add(new Product("P001", "avocado", 10));
                    productList.add(new Product("P002", "papaya", 4));
                    productList.add(new Product("P003", "pitaya", 5));
                    productList.add(new Product("P004", "orange", 4));
                    session.setAttribute("list3", productList);

                    Map map = new HashMap<>();
                    map.put("2020201111", "Anna1");
                    map.put("2020201112", "Anna2");
                    map.put("2020201113", "Anna3");
                    map.put("2020201114", "Anna4");
                    pageContext.setAttribute("studentMap", map);
                %>

遍历List集合

                

${name} |

${dog.name} | ${dog.type} | ${dog.age} |

${product.productId} | ${product.productName} | ${product.productPrice} |

遍历map集合

                
                    

${student.key} | ${student.value}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854592.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号