Java之JSTL標籤與JavaBean
JSP、JSTL標籤及 EL表達式
<!-- jstl表達式-->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!-- standard標籤庫-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
EL表達式
- 獲取數據
- 執行運算
- 獲取web開發的常用對象
調用java方法
JSP標籤
當前時間:<%=new Date()%>
name:<%=request.getParameter("name")%> //獲取參數
age:<%=request.getParameter("age")%>
<%--包含jsp文件--%>
<jsp:include page="/common/header.jsp"></jsp:include> //包含jsp文件
<%--相當於請求http://localhost:8888/jsptag2.jsp?name=Zh1z3ven&age=18--%>
<jsp:forward page="/jsptag2.jsp"> //請求轉發
<jsp:param name="name" value="Zh1z3ven"/>
<jsp:param name="age" value="18"/>
</jsp:forward>
JSTL表達式
JSTL標籤的使用就是爲了彌補HTML的不足;他自定義許多標籤,標籤的功能和java代碼一樣。
核心標籤
需要先引入標籤庫
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
if結構
<%--引入標籤庫--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form>
<%-- EL表單中獲取表達式數據
${param.參數名}
--%>
<input type="text" formmethod="get" name="username" value="${param.username}">
<input type="submit" name="submit">
</form>
<%--判斷用戶名是admin則登錄成功--%>
<%--test參數必須要填寫,var代表返回值,這裏返回值賦值爲isAdmin--%>
<c:if test="${param.username=='admin'}" var="isAdmin">
<c:out value="is Admin!"></c:out>
</c:if>
<c:out value="${isAdmin}"></c:out>
</body>
</html>
when結構
設置數據
<c:set var="score" value="85"></c:set>
<c:choose>
<c:when test="${score>=90}">
你的成績爲優秀
</c:when>
<c:when test="${score>=80}">
你的成績爲良好
</c:when>
<c:when test="${score>=70}">
你的成績爲一般
</c:when>
<c:when test="${score>=60}">
你的成績爲可以
</c:when>
</c:choose>
foreach
<%
ArrayList<String> people = new ArrayList<>();
people.add(0, "xa");
people.add(1, "xb");
people.add(2, "xc");
people.add(3, "xd");
people.add(4, "xe");
request.setAttribute("list",people);
%>
var: 每一次遍歷出來的變量
items:要遍歷的可迭代對象
begin:起始遍歷位置
end:結束遍歷位置
step:遍歷步長
<c:forEach var="people" items="${list}" begin="1" end="5" step="2">
<c:out value="${people}"/> <br>
</c:forEach>
JavaBean
實體類
JavaBean寫法:
- 必須有一個無參構造
- 屬性必須私有化
- 必須有對應的get/set方法
- 一般用來做數據庫字段的映射ORM
ORM 對象關係映射
表==> 類
字段 ==> 屬性
行記錄 ==> 對象
//設置要鏈接的class
<jsp:useBean id="people" class="com.zh1z3ven.pojo.People" scope="page"/>
//
JavaBean寫法:
<%--scope爲作用域,離開當前頁面即無效--%>
<jsp:useBean id="people" class="com.zh1z3ven.pojo.People" scope="page"/>
<%--設置屬性--%>
<jsp:setProperty name="people" property="address" value="beijing"/>
<jsp:setProperty name="people" property="id" value="1"/>
<jsp:setProperty name="people" property="name" value="3"/>
<jsp:setProperty name="people" property="age" value="zh1z3ven"/>
<%--獲取屬性值--%>
位置:<jsp:getProperty name="people" property="address"/>
id:<jsp:getProperty name="people" property="id"/>
姓名:<jsp:getProperty name="people" property="name"/>
年齡:<jsp:getProperty name="people" property="age"/>
等價於:
<%
People people = new People();
people.setAddress("hangzhou");
people.setAge(17);
people.setId(1);
people.setName("zh1z3ven");
people.getAddress();
people.getAge();
people.getId();
people.getName();
%>