SSM框架中应用el和jstl-从零学习SSM框架(5)

前言

记录我常用的el表达式和jstl标签吧

正文

el即Expression Language,用来在jsp页面上显示内容,jstl是JSP Standard Tag Library的缩写,包含多种标签,el和jstl结合使用,页面渲染更方便。

el

el基本语法是${expression}。

运算符

算数运算符

最简单的±*/,

${3-2}
逻辑运算符
  • && 与
  • || 或
  • ! 非
关系运算符
  • lt 小于
  • gt 大于
  • le 小于等于
  • ge 大于等于
  • eq 等于
  • ne 不等于
empty

判断是否为空,如${empty list}

.

取出某个属性,如${user.name}

? :

三元运算符,${expression?value1:value2}

jstl

jstl标签很多,笔记一下我常用到的标签

if

语法:

<c:if test="${one.name eq 'nick'}">
                <tr>
                    <td>nick</td>
                </tr>
</c:if>
choose

choose 标签相比if更加广泛
基本语法:

<c:choose>
    <c:when test="${empty list}">
        selectALL is empty!
    </c:when>
    <c:otherwise>
            <c:if test="${one.name eq 'nick'}">
                <tr>
                    <td>nick</td>
                </tr>
            </c:if>
    </c:otherwise>
</c:choose>
foreach

循环显示,基本语法:

<c:forEach items="${list}" varStatus="num" var="one">
                <tr>
                    <td>${num.count}</td>
                    <td>${one.uuid}</td>
                    <td>${one.name}</td>
                    <td>${one.password}</td>
                </tr>
        </c:forEach>

这里解释一下几个参数

参数是否必须意义
items要循环的集合
var定义循环项参数名
varStatus包含当前循环项的状态信息,如index,count
begin开始循环位置
end结束循环位置
step自定义循环步长

实例

把几个常用的标签实践一下,一目了然
index.jsp新增查询全部链接

<a href="/selectAll">selectAll</a>

新建selectall.jsp用于显示结果

<%@ page import="java.util.Date" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<%--
  Created by IntelliJ IDEA.
  User: Nick
  Date: 2018/10/27
  Time: 11:02
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<table>
<c:choose>
    <c:when test="${empty list}">
        selectALL is empty!
    </c:when>
    <c:otherwise>
        <c:forEach items="${list}" varStatus="num" var="one">
            <c:if test="${one.name eq 'nick'}">
                <tr>
                    <td>nick</td>
                    <td>nick</td>
                    <td>nick</td>
                    <td>nick</td>
                </tr>
            </c:if>
            <c:if test="${one.name ne 'nick'}">
                <tr>
                    <td>${num.count}</td>
                    <td>${one.uuid}</td>
                    <td>${one.name}</td>
                    <td>${one.password}</td>
                </tr>
            </c:if>
        </c:forEach>
    </c:otherwise>
</c:choose>
</table>
</body>
</html>

数据库中如果空,则显示 selectALL is empty!,否则判断,如果name是nick,则三列全显示nick,否则正常显示。
后台逻辑:
新写selectAll()函数
sql.xml新增

  <select id="selectAll" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from user
  </select>

当然还要修改相应的mapper接口和servers实现函数。
之后新建URL映射关系

@RequestMapping(value = "/selectAll")
    public String toSelectAll(Model model) {
        try {
            ArrayList<User> list = userServices.selectAll();
            model.addAttribute("list", list);
        } catch (Exception e) {
            System.out.println("selectAll error");
        }
        return "selectall";
    }

跑一遍,查看结果,
数据库表内容

显示结果

当表为空时

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值