zoukankan      html  css  js  c++  java
  • Java-JSTL标签简化和替换jsp页面上的java代码

    1. 概念:JavaServer Pages Tag Library 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中

    c:if判断标签

    <%@ page import="java.util.ArrayList" %>
    <%@ page import="java.util.List" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>if标签</title>
    </head>
    <body>
    <%--
    c:if标签
        1.属性:
            * test必须属性,接受boolean表达式
                * 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容
                * 一般情况下,test属性值会结合el表达式一起使用
        2.注意:c:if标签没有else情况,想要else情况,则可以再定义一个c:if标签
    --%>
    <c:if test="true">
        我是真...
    </c:if>
    <br>
    <%
        //判断request域中的一个list集合为是否为空,如果不为null则显示遍历集合
        List list=new ArrayList();
        list.add("aaaa");
        request.setAttribute("list",list);
    
        request.setAttribute("number",3);
    %>
    
    <c:if test="${not empty list}">
        遍历list集合.....
    </c:if>
    <br>
    <c:if test="${number%2!=0}">
        ${number}为奇数...
    </c:if>
    <c:if test="${number%2==0}">
        ${number}为偶数...
    </c:if>
    
    </body>
    </html>
    

    c:choose与c:when标签

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>choose标签</title>
    </head>
    <body>
    <%--
        完成数字编号对应的是星期几
            1.域中存储一数字
            2.使用choose标签取出数字  相当于switch声明
            3.使用when标签做数字判断  相当于case
            4.otherwise标签做其他情况的声明 相当于default
    
    --%>
    <%
        request.setAttribute("number",3);
    %>
    <c:choose>
        <c:when test="${number==1}">星期一</c:when>
        <c:when test="${number==2}">星期二</c:when>
        <c:when test="${number==3}">星期三</c:when>
        <c:when test="${number==4}">星期四</c:when>
        <c:when test="${number==5}">星期五</c:when>
        <c:when test="${number==6}">星期六</c:when>
        <c:when test="${number==7}">星期天</c:when>
        <c:otherwise>数字输入有误</c:otherwise>
    </c:choose>
    </body>
    </html>
    

    forEach遍历标签

    <%@ page import="java.util.List" %>
    <%@ page import="java.util.ArrayList" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>foreach标签</title>
    </head>
    <body>
    <%--
    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开始
    --%>
    <c:forEach begin="1" end="10" var="i" step="2" varStatus="s">
        <h2>${i}  ${s.index} ${s.count} </h2><br>
        ${s}<br>
    </c:forEach>
    <hr>
    <%
        List list=new ArrayList();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
    
        request.setAttribute("list",list);
    %>
    <c:forEach items="${list}" var="str" varStatus="s">
      <h2>${s.index} ${s.count} ${str}</h2>
    </c:forEach>
    </body>
    </html>
    

    对象列表输出案例

    <%@ page import="java.util.ArrayList" %>
    <%@ page import="java.util.List" %>
    <%@ page import="cn.itcast.domain.User" %>
    <%@ 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="#faebd7">
                    <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="aqua">
                    <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 函数式编程—@FunctionalInterface----functional interface
    人月神话的博客
    如何度量复杂度
    泛型沉思录:创建模版与使用模版生成代码
    ioc与bean管理
    模式(思维)匹配是什么
    简析散光的成因,以及什么是散光的度数和轴位?
    概括是什么?
    思维与模型、世界观
    抽象、维度、层次与分析、综合
  • 原文地址:https://www.cnblogs.com/dongxuelove/p/13043947.html
Copyright © 2011-2022 走看看