SSM框架中應用el和jstl-從零學習SSM框架(5)
阿新 • • 發佈:2018-12-22
前言
記錄我常用的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";
}
跑一遍,檢視結果,
資料庫表內容
顯示結果
當表為空時