关于jstl的使用
1、jsp中el表达式无法被解析
使用jstl标签的时候,发现el表达式无法被解析,后来查阅资料发现jsp中需要添加<%@page isELIgnored="false" %>,表示是否忽略el表达式,当然是false,不允许。

但是归结到底,罪魁祸首还是在idea编译器,他生成的web.xml竟然是2.3版本的,在没有添加<%@page isELIgnored="false" %>的情况下,更改web.xml的版本也是一个办法
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
如上将web版本改成2.3以上即可。因为2.3本身不默认支持el表达式解析。
2.jstl标签属性整理:
核心标签:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>也是最常用的

c:forEach 的 varStatus属性解析
varStatus属性 类型:String 描述:循环的状态信息,可以取值index\count\first\last\current
不可以使用EL表达式我们常使用<c:forEach>标签来遍历需要的数据,为了方便使用,varStatus属性可以方便我们实现一些与行数相关的功能,如:奇数行、偶数行差异;最后一行特殊处理等等。varStatus属性常用参数如下:
current:当前这次迭代的(集合中的)项
index:当前这次迭代从 0 开始的迭代计数
count:当前这次迭代从 1 开始的迭代计数
first:用来表明当前这轮迭代是否为第一次迭代的标志,返回true/false
last:用来表明当前这轮迭代是否为最后一次迭代的标志,返回true/false
格式化标签:<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>用于格式化时间,日期和数字等信息

标准函数:<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 通用字符串处理函数

3、jstl的使用
3.1如何通过servlet将数据传到jsp页面呢?
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List mlist = new ArrayList();
mlist.add("test1");
mlist.add("test2");
mlist.add("test3");
mlist.add("test4");
mlist.add("test5");
req.setAttribute("mlist",mlist);
// resp.getWriter().append(((List<String>)req.getAttribute("mlist")).get(1));
Map<String ,String> mMap = new HashMap<String, String>();
mMap.put("key1","value1");
mMap.put("key2","value2");
mMap.put("key3","value3");
mMap.put("key4","value4");
req.setAttribute("map",mMap);
req.getRequestDispatcher("/").forward(req,resp);
}
主要使用req.setAttribute(key,value) 设置请求参数用于jsp页面展示,然后使用req.getRequestDispatcher("/").forward(req,resp);转发请求将内容提交到jsp页面。注意:此处不能使用resp.sendRedirect("/");因为使用响应重定向转发请求的话,并不携带当前servlet数据,只是单纯的请求转发,那样jsp页面无法收到request的数据。
- forward:请求转发,也就是将A向B请求数据,B直接将A的请求转发给C。
- redirect:请求重定向,A向B请求数据,B告诉A应该找C,那么A重新向C发起请求。
对比图:(左:请求转发,右:请求重定向)

3.2通过jstl展示
<ul>
<li>list方式</li>
<c:forEach items="${mlist}" var="l" varStatus="vs">
<li style="list-style: none">${l}=>${vs.first}=>${vs.count}=>${vs.index}</li>
</c:forEach> <li>map方式</li>
<c:forEach items="${map}" var="m" varStatus="vs">
<li style="list-style: none">${m.key}=>${m.value}</li>
</c:forEach>
</ul>
结果展示:

此处如果出现el表达式无法解析的情况,可参考第一条。
关于jstl的使用的更多相关文章
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- JSTL标签 参考手册
前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...
- JavaWeb_day08_EL JSTL
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day08 EL JSTL EL表达式 语法:${} ...
- java web学习总结(三十) -------------------JSTL表达式
一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...
- [Java] JSP笔记 - EL、JSTL 常用标签
一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...
- JSTL 操作符
el表达式的取值默认顺序: pageScope requestScope sessionScope applicationScope 结构,采用.导航,也称为存取器 ${us ...
- JSP页面JSTL提供的函数标签EL表达式操作字符串的方法
首先在jsp页面导入标签<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions&quo ...
- JSTL标签库
JSP页面作为内嵌java的Html简化了Servlet在控制页面显示的语法,但JSP脚本中的表达式功能不够强大,语法也稍显繁杂,EL(Expression Language)表达式语言的出现能够大大 ...
- 重温JSP学习笔记--与日期数字格式化有关的jstl标签库
上一篇笔记写的主要是JSTL的core标签库,如果想对一些数字或者日期做一些操作或者在网页上显示指定格式的数字或日期,jstl还提供了另一个fmt标签库,这里简单介绍一下: 第一步,导入标签库: &l ...
- 重温JSP学习笔记--JSTL标签库
以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...
随机推荐
- 洛谷P2756飞行员配对方案问题 P2055假期的宿舍【二分图匹配】题解+代码
洛谷 P2756飞行员配对方案问题 P2055假期的宿舍[二分图匹配] 飞行员配对方案问题 题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架 ...
- 使用matlab生成sine波mif文件
使用matlab生成sine波mif文件 作者:lee神 在使用altera 的FPGA中的rom过程中常常会使用到.mif文件或.hex文件.对于初学者,无论mif还是hex都是很令人疑惑的东西,这 ...
- Java进阶之路——从初级程序员到架构师,从小工到专家
原创文章 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到 ...
- 【Learning】 欧拉回路的求解
欧拉回路: 欧拉回路,俗称一笔画,比如一笔画五角星等. 这里给出非严谨的定义:欧拉回路即从一个点出发,不重复.不遗漏地经过所有的边与所有的点,并恰好回到出发点. 包含欧拉回路的图称为欧拉图. 欧拉回路 ...
- 搬砖的也能学Python----if - elif 语句
引入:如果平时执行的过程超过两个分支,则使用if-elif语句 if-elif 语句结构 if 判断条件: 要执行的代码 elif 判断条件: 要执行的代码 -- else: 要执行的代码 判断条件: ...
- SpringMVC的常用注解
在SpringMVC中常用的注解主要都是用于Controller上,所以下面的四大不同类型的注解都是根据它们处理的request的不同内容部分来区分的: 处理requ ...
- U-boot-1.1.4中关于hello_world.srec出错
make[1]: *** No rule to make target `hello_world.srec', needed by `all'. Stop. make[1]: Leaving dir ...
- Android应用Home键后Launcher重复启动问题
通过系统方式(系统安装器)安装应用,点击"打开"按钮,进入应用主界面,按home键后,点击应用图标进入,应用会出现重新启动.当完全退出应用后,再通过启动图标进入应用,便不会出现重复 ...
- discuz 更换域名 导致qq登录不能用的问题
今天论坛换了域名,导致qq登录不能用.于是各种百度,终于找到了解决方案,特此记录一下 解决方法:1,首先清空你站点的id和key,并且设置为未注册云平台: 2,找一个新域名(未开过云平台的就可),如果 ...
- dedecms 在首页调取文章内容
方法一:arcticle 标签 加上channeleid {dede:arclist' addfields='body' channelid='1'}[field:body/]{/dede:arcli ...