标签:核心标签库 请求 ${ } art 表示 查找 开发 text 示例
el表达式(Expression Language) 是为了使JSP写起来更加简单。
在JSP中访问模型对象是通过EL表达式的语法来表达。所有EL表达式的格式都是以“${ }”表示。例如,${ userinfo}代表获取变量userinfo的值。当EL表达式中的变量不给定范围时,则默认在page范围查找,然后依次在request、session、application范围查找。也可以用范围作为前缀表示属于哪个范围的变量,例如:${ pageScope. userinfo}表示访问page范围中的userinfo变量。
EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传。
获取数据
执行运算
获取web开发的常用对象
<!--jstl表达式的依赖--> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> ? <!--jstl需要用到的standard标签库--> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%--内置对象--%>
<%
pageContext.setAttribute("name1","Hayden1"); //保存的数据只在一个页面中有效
request.setAttribute("name2","Hayden2"); //保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","Hayden3"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("name4","Hayden4"); //保存的数据只在服务器中有效,从打开服务器到关闭服务器
%>
<%
/*通过pageContent取出我们保存的值*/
String name1 = (String) pageContext.findAttribute("name1");
String name2 = (String) pageContext.findAttribute("name2");
String name3 = (String) pageContext.findAttribute("name3");
String name4 = (String) pageContext.findAttribute("name4");
String name5 = (String) pageContext.findAttribute("name5"); //本不存在
%>
<%--使用EL表达式输出 ${}--%>
<h1>${name1}</h1>
<h1>${name2}</h1>
<h1>${name3}</h1>
<h1>${name4}</h1>
<h1>${name5}</h1> <%--不显示出来--%>
<h1><%=name5%></h1> <%--显示null--%>
</body>
</html>
<!--jsp依赖--> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2.1-b03</version> </dependency>
这里实现的是一个页面转发数据到另一个页面中,并在另一个页面进行数据的获取。
<body>
<%--带参数转发到某个页面--%>
<jsp:forward page="/jsp5.jsp">
<jsp:param name="name" value="Hayden-Wong"></jsp:param>
<jsp:param name="age" value="23"></jsp:param>
<jsp:param name="sex" value="Male"></jsp:param>
</jsp:forward>
</body>
<body> name: <%=request.getParameter("name")%> age: <%=request.getParameter("age")%> sex: <%=request.getParameter("sex")%> </body>
值得注意的是,jsp标签内不可以写注释,否则编译通过,运行时会报错。
JSTL标签的使用是为了弥补HTML标签的不足,它自定义许多标签可供使用,标签的功能和Java代码相同。
核心标签(最常用)
格式化标签
SQL 标签
XML 标签
JSTL 函数
<!--jstl表达式的依赖--> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> ? <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api --> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </dependency> ? <!-- https://mvnrepository.com/artifact/org.glassfish.web/jstl-impl --> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>jstl-impl</artifactId> <version>1.2</version> </dependency> ? <!--jstl需要用到的standard标签库--> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
引入对于的taglib
使用其中的方法
在Tomcat/lib路径下也要有相关的依赖包,否则500错误

核心标签是最常用的 JSTL标签。引用核心标签库的语法如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
在页面中提交一个表单到自身页面,再判断输入的情况:
<%@ 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>
<h3>if测试</h3>
<hr>
<form action="jstlDemo1.jsp" method="get">
<input type="text" name="age" value="${param.age}">
<input type="submit" value="登录">
</form>
?
<c:if test="${param.age==‘16‘}" var="isAdmin">
<c:out value="小朋友欢迎你!"/>
</c:if>
?
<c:out value="${isAdmin}"/>
?
</body>
</html>
jstl标签的when方法相当于Java中的if-else if结构:
<body>
<c:set var="score" value="94"/>
<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:when test="${score<60}">
你的成绩是不合格!
</c:when>
</c:choose>
</body>
jstl中的foreach方法相当于Java中的for循环结构:
<body> <% ArrayList<String> people = new ArrayList<>(); people.add(0,"oneone"); people.add(1,"twotwo"); people.add(2,"threethree"); people.add(3,"fourfour"); request.setAttribute("list",people); %> <%-- var:每次要遍历出来的变量 items:要遍历的对象 begin:开始的下标 end:结束的下标 step:步长 --%> <c:forEach var="people" items="${list}" begin="0" end="3" step="1"> <c:out value="${people}"/> <br> </c:forEach> </body>
标签:核心标签库 请求 ${ } art 表示 查找 开发 text 示例
原文地址:https://www.cnblogs.com/awong18/p/13377576.html