JSTL的相关使用

时间:2023-11-26 08:40:56

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!-- 先得定义一个taglib -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head> <body>
<!-- 输出一个常量 -->
<c:out value="this is a first demo"></c:out>
<%
String name="1q23";
session.setAttribute("name", name);
request.setAttribute("name", name);
%>
<!-- 输出一个变量 -->
<!-- 这里通过el表达式输出了name的值 -->
<!-- EL表达式中的几个对象 -->
${sessionScope.name }
${requestScope.name }
${responseScope.name }
${pageScope.name }
<c:out value="${sessionScope.name}"></c:out><br>
<!-- 输出转义字符 escapeXml设置为false-->
<c:out value=" " escapeXml="false"></c:out><br>
<c:out value=" " escapeXml="true"></c:out><br>
<!-- 设置默认值如果这个变量不存在的话 -->
<c:out value="${responseScope.name }" default="123"></c:out><br>
This is my JSP page. <br>
</body>
</html>

choose.jsp

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="chooose.jsp">
<input type="text" name="score" value="${param.score }">
<input type="submit" value="点击">
</form>
<c:choose>
<c:when test="${param.score>90 }">
<c:out value="太棒了"></c:out>
</c:when>
<c:otherwise>
<c:out value="ohhhh"></c:out>
</c:otherwise>
</c:choose>
<!-- foreach函数 -->
<%
ArrayList<String> list=new ArrayList<String>();
list.add("x1");
list.add("x2");
list.add("x3");
list.add("x4");
list.add("x5");
list.add("x6");
session.setAttribute("list", list);
%>
<!-- 这里的var是对象的遍历内容 begin 和end是结束标准 step 是步长 varStatus是获取这里面的属性值 -->
<c:forEach var="f1" items="${list}" begin="0" end="5" step="1" varStatus="f">
<c:out value="${f1}"></c:out><br>
</c:forEach>
<!-- forTaken的用法 -->
<c:forTokens items="这里是分割字符串-的地方-这里的内容是-文本" delims="-" var="str">
<c:out value="${str }<br>" escapeXml="false"></c:out>
</c:forTokens>
<!-- 这个是导入网站 scope保存的区域-->
<c:import url="http://www.imooc.com" charEncoding="utf-8" scope="session"> </c:import>
<!-- 可以导入其他的本地的项目的jsp -->
<c:catch var="e">
<c:import url="/index.jsp" context="LoginDemo"></c:import>
</c:catch>
<c:out value="${e }"></c:out>
</body>
</html>

redirect.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c1" %>
<!-- 导入核心类库 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- redirect标签
<c1:redirect url="index.jsp">
<c1:param name="user">123</c1:param>
<c1:param name="pass">456</c1:param>
</c1:redirect>-->
<!-- 下面是fn的例子 -->
<c1:out value="${fn:contains('21332','21') }"></c1:out>
</body>
</html>

set.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- javaBean 的初始化 -->
<jsp:useBean id="person" class="cn.lonecloud.Person"></jsp:useBean>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 设置session中的值 -->
<c:set value="demo" var="name1" scope="session"></c:set>
<c:out value="获取session中的值:${sessionScope.name }<br>" escapeXml="false"></c:out>
<!-- 设置javaBean中的值 target是获取实例名称 proerty 是设置实例中的哪个属性 -->
<!-- 必须注意的是target="${person }" 必须用El表达式不然会出错-->
<c:set target="${person }" property="name" value="张三" ></c:set>
<c:out value="${person.name}"></c:out>
<!-- remove标签--只能remove一个变量 -->
<br>
<c:remove var="name1"/>
<c:out value="remove后的${name1 }"></c:out>
<!-- catch 块进行抓取error到里面去 -->
<c:catch var="err">
<c:out value="${3/0}"></c:out>
</c:catch>
<c:out value="err"></c:out>
<form action="set.jsp" method="post">
<!-- 必须设置name属性 -->
<input type="text" name="score" value="${param.score }">
<input type="submit" value="点击">
</form>
<c:out value="${param.score}"></c:out>
<c:if test="${param.score>90 }" var="result">
<c:out value="恭喜你"></c:out>
</c:if>
<c:out value="${result }"></c:out>
</body>
</html>