0
点赞
收藏
分享

微信扫一扫

4-3 JSTL

eelq 2022-02-10 阅读 55
package servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class JSTLServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		List<String> list = new ArrayList<String>();
		list.add("张三");
		list.add("李四");
		list.add("刘能");
		list.add("谢广坤");
		req.setAttribute("list", list);
		req.setAttribute("no", 12);
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("name", "周润发");
		map.put("age", 62);
		req.setAttribute("map", map);
		//请求转发,跳转到jsp页面
		req.getRequestDispatcher("/WEB-INF/page/jstl.jsp").forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
}
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> 
<!-- 引入jstl标签库 -->
<!-- 
JSTL标签库是一个JSP标签的集合,封装了许多jsp应用程序通用的核心功能
uri:标签库路径
prefix:标签库别名
-->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!-- JSTL格式化标签 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f"%>
<html>

<body>
<p style="color:red; font-size:36px;">jstl-foreach</p>
<!-- 
	items 被遍历的数据集
	var 每一条遍历记录的别名
	类似于java的for(var : items){}
-->
<c:forEach var="str" items="${list}">
	<p>${str}</p>
</c:forEach>

<p style="color:red; font-size:36px;">jstl-if</p>
<c:if test="${no > 20}">
	<p>yes</p>
</c:if>
<c:if test="${no <= 20}">
	<p>no</p>
</c:if>

<p style="color:red; font-size:36px;">jstl-choose</p>
<!-- 类似于java中的switch -->
<c:choose>
    <c:when test="${no > 20}">
        <p>大于20</p>
    </c:when>
    <c:when test="${no < 20}">
        <p style="color:red;">小于等于20</p>
    </c:when>
    <c:otherwise>
    	<p>otherwise</p>
    </c:otherwise>
</c:choose>

<hr>

<c:out value="输出标签,类似out内置对象" />
<br>

<!-- 
c:set 声明变量标签 
var 变量名
value 变量值
scope 作用域page request session application

四大作用域,可以使用四个值:
page:只能应用于当前页
request:只能应用于当前的请求
session:在本次session内有效
application:能应用于整个应用程序内
-->
<c:set var="money" value="200" scope="session" />

<!--在demo01.jsp中访问变量-->
<a href="http://localhost:8080/web01/demoServlet">验证money生效</a>
<hr>
<!-- 
EL表达式
作用:
1 获取服务端请求中的参数值
2 输出数据到jsp页面
3 获取请求中的参数对象的属性值
 -->
${map.name}
${map.age}
<hr>
<!-- 格式化数字标签 -->
<f:formatNumber value="12.125" maxFractionDigits="2"></f:formatNumber>
<f:formatNumber value="${5 / 3}" maxFractionDigits="3"></f:formatNumber>
<c:set var="now" value="<%=new java.util.Date()%>" />
<hr>
<!-- 格式化日期标签 -->
<f:formatDate value="${now}"  pattern="yyyy-MM-dd HH:mm:ss:SSS"/>
<hr>
${now}
</body>
</html>
  • 结果
    在这里插入图片描述
举报

相关推荐

0 条评论