jsp整合el表达式与jstl标签
说明
更新时间:2020/12/07 17:17,更新完基本内容
servlet+jsp+el+jstl整合,采用maven构建项目
注意:本文仅为记录学习轨迹,如有侵权,联系删除
一、导入jsp相关坐标依赖
这里直接给出一个项目的pom文件,包括了mysql驱动
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<!-- servlet依赖的jar包start -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- servlet依赖的jar包start -->
<!-- jsp依赖jar包start -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
<!-- jsp依赖jar包end -->
<!--jstl标签依赖的jar包start -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
二、jsp整合el与jstl
这里主要在jsp最开头引入下面的语句
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
重点,isELIgnored ,jsp默认是true忽略EL,这里需要改为false
三、el
在jsp开发中,为了获取Servlet域对象中存储的数据,经常要写很多java代码,这样的做法会使JSP页面混乱,难以维护,为此,在JSP2.0规范中提供了EL表达式。它是Expression Language的缩写。下面给出EL表达式的详细说明。
四大域取值
<%--四大域的取值-- %>
<%
pageContext.setAttribute("name", "pValue");
request.setAttribute("name", "rValue");
session.setAttribute("name","sValue");
application.setAttribute("name", "aValue");
%>
<%--获取指定作用域的数据--%>
${pageScope.name }
${requestScope.name }
${sessionScope.name }
${applicationScope.name }
请求参数取值
<%--
param.xxx 对应 request.getParameter("xxx");
paramValues.xxx 对应 request.getParameterValues("xxx");
--%>
${param.username }
${paramValues.hobby }<%--获得一组数据,使用数组 --%>
${paramValues.hobby[1] }<%--如果是数组,可以使用下表 --%>
四、jstl
关于jstl这里给出菜鸟教程的链接,上面有详细介绍以及使用,下面给出一些常用的方法。
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
c:if
<c:if test="${salary > 2000}">
<p>我的工资为: <c:out value="${salary}"/><p>
</c:if>
when
<c:choose>
<c:when test="${salary <= 0}">
太惨了。
</c:when>
<c:when test="${salary > 1000}">
不错的薪水,还能生活。
</c:when>
<c:otherwise>
什么都没有。
</c:otherwise>
</c:choose>
foreach
<c:forEach begin="1" end="${productResult.getPageCount()}" varStatus="StatusName">
<li <c:if test="${productResult.getPageNum() == StatusName.index}"> class="active" </c:if>>
<a href="javascript:void(0)" onclick="pageIndex(${StatusName.index})">${StatusName.index}</a>
</li>
</c:forEach>