8.5 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>
EL表达式:${}
获取数据
执行运算
获取web开发的常用对象
JSP标签
<jsp:forward page="index.jsp">
<jsp:param name="name" value="小明"/>
</jsp:forward>
JSTL表达式
JSTL标签的使用就是为了弥补html标签的不足:它自定义许多标签可以供我们使用,标签的功能和java代码一样
核心标签
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<c:out>用于在jsp中显示数据
<c:set>用于保存数据
<c:remove>用于删除数据
<c:catch>用于处理产生错误的异常状况,并且将错误信息储存起来
<c:if>与我们在一般程序中用的if一样
<c:choose>本身只当作<c:when><c:otherwise>的父标签
<c:when> <c:choose>的子标签,用来判断条件是否成立
<c:otherwise> <c:choose>的子标签,放在<c:when>后面,当<c:when>判断为false时执行
<c:foreach>基础迭代标签,支持多种集合类型
<c:url>使用可选的查询参数创造一个url
JSTL标签库使用
引入对应的taglib
使用其中方法
在tomcat中也要引入jstl的包,否则会报错,jstl解析错误
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<form>
<input type="text" name="username" value="${param.username}"/>
<input type="submit"/>
</form>
<c:if test="${param.username=='小明'}">
<c:out value="小明欢迎您"/>
</c:if>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<c:set var="score" value="60"/>
<c:choose>
<c:when test="${score>=90}">
你的成绩为优秀
</c:when>
<c:when test="${score>=80}">
你的成绩为良好
</c:when>
<c:when test="${score>=60}">
你的成绩为合格
</c:when>
<c:otherwise>
你的成绩为不合格
</c:otherwise>
</c:choose>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<% ArrayList<String> people=new ArrayList<>();
people.add("张三");
people.add("李四");
people.add("王五");
request.setAttribute("list",people);
%>
<c:forEach var="temp" items="${list}">
<c:out value="${temp}"/>
</c:forEach>
</body>
</html>
9 JavaBean
实体类
JavaBean有特定的写法
- 必须要有一个无参构造
- 属性必须私有化
- 必须有对应的get/set方法
一般用来和数据库的字段做映射 orm
ORM 对象关系映射
表–》类
字段–》属性
行记录–》对象
package pojo;
public class People {
private int id;
private String name;
private int age;
public People(){}
public People(int id,String name,int age)
{
this.id=id;
this.name=name;
this.age=age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<jsp:useBean id="people" class="pojo.People" scope="page"/>
<jsp:setProperty name="people" property="id" value="1"/>
<jsp:setProperty name="people" property="name" value="小明"/>
<jsp:setProperty name="people" property="age" value="17"/>
id:<jsp:getProperty name="people" property="id"/>
姓名:<jsp:getProperty name="people" property="name"/>
年龄:<jsp:getProperty name="people" property="age"/>
</body>
</html>