分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

JSTL&EL

发布时间:2023-09-06 01:53责任编辑:顾先生关键词:暂无标签

1.EL:

Expression Language,可以很方便地获取各种参数:

${参数名}

<%@ page language="java" contentType="text/html; charset=UTF-8" ???pageEncoding="UTF-8" isELIgnored="false"%>//不同版本的tomcat是否默认开启对EL表达式的支持,是不一定的,加这一句保险些<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE html><html><head><meta charset="utf-8"><title>Insert title here</title></head><body> ???<% ???????request.setAttribute("name","god"); ???????session.setAttribute("name","session"); ???????application.setAttribute("name","apply"); ???????pageContext.setAttribute("name","page"); ???????Cookie c = new Cookie("cookie","cool"); ???????response.addCookie(c); ???//EL会按照从小到大的优先级顺序获取 ????//${name} ???//pageContext>request>session>application ???%> ???${requestScope.name } ???${sessionScope.name } ???${applicationScope.name } ???${pageScope.name } ???<%--获取cookie名称(键)--%> ???${cookie.cookie.name } ???<%--获取cookie值 --%> ???${cookie.cookie.value } ???<%--获取request传过来的值--%> ???${param.hero } ???<%--获取web根路径--%> ???${pageContext.request.contextPath } ???<%--空判断--%> ???${empty name }; ???<%--equals判断--%> ???${name eq ‘god‘ }</body></html>

EL表达式能够很方便的获取对象的属性,像这样 ${hero.name} ,就会自动调用getName方法了。

2.JSTL:

JSTL JSP Standard Tag Library 标准标签库 
JSTL允许开人员可以像使用HTML标签 那样在JSP中开发Java功能。 
JSTL库有core, i18n, fmt, sql 等等。 
i18n和sql用的很少,core和fmt在工作中会用到

常用语法:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 首先要导入标签库

<c:set var="name" value="${‘gareen‘}" scope="request" />

在作用域request中设置name,相当于<%request.setAttribute("name","gareen")%>

<c:out value="${name}" />

相当于 <%=request.getAttribute("name")%>

<c:remove var="name" scope="request" />

在作用域request中删掉name,相当于<%request.removeAttribute("name")%>

作用域可以是pageContext, request, session, application

if else: JSTL中没有else标签,但我们可以使用!来获得相同效果

<c:if test="布尔值"></c:if>,结合EL来使用

<%@ page language="java" contentType="text/html; charset=UTF-8" ???pageEncoding="UTF-8" import="java.util.*"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:set var="hp" value="${10}" scope="request" /> <c:if test="${hp<5}"> ???<p>这个英雄要挂了</p></c:if> <c:if test="${!(hp<5)}"> ???<p>这个英雄觉得自己还可以再抢救抢救</p></c:if> <% ???pageContext.setAttribute("weapon", null); ???pageContext.setAttribute("lastwords", ""); ???pageContext.setAttribute("items", new ArrayList());%> <c:if test="${empty weapon}"> ???<p>没有装备武器</p></c:if><c:if test="${empty lastwords}"> ???<p>挂了也没有遗言</p></c:if><c:if test="${empty items}"> ???<p>物品栏为空</p></c:if>

<c:forEach></c:forEach> 增强型for循环

<%@ page language="java" contentType="text/html; charset=UTF-8" ???pageEncoding="UTF-8" isELIgnored="false" import="java.util.*" import="bean.User"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE html><html><head><meta charset="utf-8"><title>Insert title here</title></head><body><% ???List<User> ulist = new ArrayList<User>(); ???User u1 = new User("张三","123",20,"男"); ???User u2 = new User("李四","123",22,"男"); ???User u3 = new User("王五","123",18,"男"); ???ulist.add(u1); ???ulist.add(u2); ???ulist.add(u3); ???request.setAttribute("ulist",ulist);%><table border="1px"> ???<c:forEach items="${ulist }" var="user" varStatus="st">//要遍历的对象 形参 遍历状态 ???????????<tr> ???????????????<td><c:out value="${st.count}" /></td>//获取遍历的位次 ???????????????<td><c:out value="${user.uname}" /></td> ???????????????<td><c:out value="${user.pwd}" /></td> ???????????????<td><c:out value="${user.sex}" /></td> ???????????????<td><c:out value="${user.age}" /></td> ???????????????</tr> ???</c:forEach></table></body></html>

format格式化:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix=‘fmt‘ %> 导入标签库

格式化小数:

<fmt:formatNumber type="number" value="${money}" minFractionDigits="2"/>

fmt:formatNumber 表示格式化数字
minFractionDigits 小数点至少要有的位数
maxFractionDigits 小数点最多能有的位数

<%@ page language="java" contentType="text/html; charset=UTF-8" ???pageEncoding="UTF-8" import="java.util.*"%> ????<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" ?prefix=‘fmt‘ %> ?<c:set var="money" value="888.8" /><c:set var="pi" value="3.1415926" />最少两个小数点:<fmt:formatNumber type="number" value="${money}" minFractionDigits="2"/><br>最多两个小数点:<fmt:formatNumber type="number" value="${pi}" maxFractionDigits="2" />

格式化日期:

<%@ page language="java" contentType="text/html; charset=UTF-8" ???pageEncoding="UTF-8" import="java.util.*"%> ????<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" ?prefix=‘fmt‘ %> ?<% ???Date now = new Date(); ???pageContext.setAttribute("now",now);%> 完整日期: <fmt:formatDate value="${now}" pattern="G yyyy年MM月dd日 E"/><br>完整时间: <fmt:formatDate value="${now}" pattern="a HH:mm:ss.S z"/><br>常见格式: <fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss"/>

JSTL&EL

原文地址:https://www.cnblogs.com/whwjava/p/9028408.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved