el表达式及jstl,jsp中的6个动作

news/2024/5/18 16:28:17 标签: java, jstl, jsp

1 el表达式

作用:
简化jsp代码
语法:
${key}
注意点:
1.使用el表达式获取数据时,该数据必须存在于某个域中
2.如果多个域中存在相同的key值,那么会根据范围从小到大依次查找
判断:empty 、== 、not empty 、!=

java">不使用el表达式获取userList集合
<%
List<User> userList = null;
Object obj = session.getAttribute("userList");
userList = (List<User>)obj;
%>
使用el表达式
userList:${userList}

判断:
<%
session.setAttribute("uname","juni");
%>
username:${not empty uname}

jstl_26">2 jstl

为什么需要jstl
el表达式无法实现业务逻辑上的判断,因此需要结合jstl来操作
jstl是什么:
标准的标签库
jstl的使用:
1.想要使用标签库,需要引入两个jar包,标签库和标准库
2.在需要使用的页面中将core类库引入进来

java">引入core类库的语法:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
taglib 指令,用于引入核心类库的地址
uri    指定地址
prefix 别名
java">常见的jstl标签:
<--var 变量名,也相当于是一个key
value 指定值
scope 指定存储的作用域
default 默认值-->

1.c:set 和 c:out
 request.setAttribute("uname","juni")相当于下面的set标签
<c:set var="uname" value="juni" scope="request"></c:set>
移除前<c:out value="${uname}" default="null"></:out>
<c:remove var="uname"/>
移除后:<:out value="${uname}" default="null"></:out>

2. c:if 做判断
test属性中只能写Boolean类型的值

<c:if test="${not empty uname}">
用户名为null
</c:if>

3. c:foreach 循环
items 指定要遍历的集合对象
var   指定每次遍历的对象的别名
begin 开始下标 i=0
end   结束下标 list.size()-1 包含end的值
step  阶梯    i++
varStatus 指定下标的别名

遍历list集合:
<%
List<String> strList = new ArrayList<>();
strList.add("java");
strList.add("java script");
pageContext.setAttribute("strList",strLsit);
%>
<c:forEach items="${strList}" var="str" varStatus="status">
	${str},${status.index}<br>
</c:forEach>

遍历set集合:
<%
	Set<String> set = new HashSet<String>();
	set.add("liubei");
	set.add("guanyu");
	set.add("zhangfei");
	pageContext.setAttribute("set",set);
%>
<c:forEach items="${set}" var="str">
	${str}<br/>
</c:forEach>

遍历map集合:
<%
	Map<String,Object> map = new HashMap<String,Object>();
	map.put("username","jack");
	map.put("sex","man");
	map.put("address","China");
	PageContext.setAttribute("map",map);
%>
<:forEach items="${map}" var="user">
	${user.key},${user.value}<br/>
</c:forEach>

jsp_108">3 jsp中常见动作标签

java">
<jsp:include> 动态包含

<jsp:forward> 请求转发

<jsp:param> 设置请求参数

<jsp:useBean> 创建一个对象

<jsp:setProperty> 给指定的对象属性赋值

<jsp:getProperty> 取出指定对象的属性值 

http://www.niftyadmin.cn/n/1679712.html

相关文章

centos nginx 多端口配置过程记录

1. 编辑 /usr/local/nginx/vhosts/ 在此目录下增加一文件&#xff0c;如;ci.ainux.com,或复制一个文件 修改其中的端口和目录&#xff0c;更改log_format 名称 重启nginx&#xff1a;/usr/local/nginx/sbin/nginx -s reload 2. 注意防火墙&#xff1a;增加其它开通的端口&…

机械优化设计matlab程序,机械优化设计课后MATLAB编程全手工

绝对的一手,,,本人做完试验后保存的!!!机械优化设计实验(常用优化方法程序考核题) 姓名 吕超 班级 机工1005班 学号 104057010111.一位搜索方法程序考核题1) 调用函数fminbnd[x0,fval]fminbnd((t)t^2-10*t36,-5,5)实验结果&#xff1a;x0 5fval 112) 调用函数fminbnd[x0,fval]f…

解决系统系统管理员不允许使用保存的凭据登录远程计算机

平时工作中我们会经常远程登陆windows计算机&#xff0c;虽然微软提供的远程桌面链接工具提供了记住凭据的功能&#xff0c;但是我们还是得每次远程的时候都会提示“系统管理员不允许使用保存的凭据登录远程计算机&#xff0c;原因是未完全验证其标示&#xff0c;请输入新的凭据…

使用移动设备 连接到Exchange Server 2007

多种移动设备都可与 Microsoft Exchange Server 2007 进行同步。大多数与 Exchange 2007 同步的移动设备都是移动电话。这些设备可以运行 Windows Mobile、Symbian、Palm 和 Nokia 等操作系统。&#xff08;摘自Exchange帮助文档&#xff09; 启用 Exchange ActiveSync 的所有移…

ArcGIS Server 开发系列(六)--自定义 Tasks

作者&#xff1a;Flyingis 本文严禁擅自转载或用于商业目的&#xff0c;如有需要请事先联系作者&#xff1a;dev.vip#gmail.com Tasks由一组相互关联的组件、动作组成&#xff0c;并可以展现最后的结果&#xff0c;如QueryAttributeTask执行空间数据属性查询&#xff0…

servlet第二讲(序列化和反序列化、配置上下文参数、service方法的作用、返回给前端json数据)

1 什么是序列化和反序列化&#xff0c;为什么要序列化&#xff1f; 1.1序列化和反序列化的定义&#xff1a; (1) Java序列化就是指把Java对象转换为字节序列的过程 Java反序列化就是指把字节序列恢复为Java对象的过程。 (2)序列化最重要的作用&#xff1a;在传递和保存对象时.…

最简单的log4j配置

为什么80%的码农都做不了架构师&#xff1f;>>> log4j.rootLoggerinfo,consolelog4j.appender.consoleorg.apache.log4j.ConsoleAppenderlog4j.appender.console.layoutorg.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern[%p-%d{yyy…

window xampp php,window_Windows系统下XAMPP的安装配置图文教程,这是关于在windows下XAMPP的安装 - phpStudy...

Windows系统下XAMPP的安装配置图文教程这是关于在windows下XAMPP的安装配置图文教程&#xff0c;XAMPP 是什么&#xff1f;在linux ubuntu系统下安装配置LAMP时提到了XAMPP&#xff0c;XAMPP为我们提供了一种在Linux、Solaris、Windows和Mac OS X系统下简易安装Apache服务器发行…