JSTL和EL表达式字符串比较
来源:互联网 发布:生产进销存软件免费版 编辑:程序博客网 时间:2024/05/27 14:14
自己练习的时候,要比较sessionScope域中某值和requestScope域中某值是否相等,百度无果。就在自己马上要放弃的时候,再一次调试的时候发现了其中的端倪。
需求很简单,用户登录成功之后显示数据库中所有的用户信息,自己又给加了一个,就是在显示的时候可以把这个刚刚登陆的用户信息加红显示,以便区分。
我把此登陆用户的id保存到了sessionScope中,key是theUserId
。遍历数据库将里边的数据存放到ArrayList中,再把这个ArrayList保存到requestScope中。在jsp界面遍历此ArrayList,把每次遍历到的UserId与存放在sessionScope中的theUserId
做比较,如果相等,就加红显示。问题也就出现在这里!
先稍稍解释一下jsp四大域对象和Servlet三大域,对于我这种菜鸟来说还是很容易分不清的。
jsp四大域对象与Servlet三大域对象
什么是域对象?什么是域?
域对象就是可以存取数据的对象,我们都知道JSP的九大内置对象,而只有四个对象称为域对象,他们把数据都存放在各自的域(本质是Map)中
- pageContext(类javax.servlet.jsp.PageContext的实例)————————————>pageScope
- request(类javax.servlet.http.HttpServletRequest的实例)————————————>requestScope
- session(类javax.servlet.http.HttpSession的实例)————————————>sessionScope
- application(类javax.servlet.ServletContext的实例)————————————>applicationScope
而Servlet只有除pageContext之外的其他三个域对象,获取方法如下
request直接可以得到,由tomcat服务器作为值传递给server()方法供我们直接使用
session对象可以通过request.getSession()得到,HttpSession session = request.getSession();
最后一个application对象,ServletContext application = this.getServletContext();
这些域对象都有Object getAttribute(String para)
和 void setAttribute(String para,Object obj)
两个方法
要命的JSTL格式
格式:<c:if test="${ 比较内容 }"
值得注意的是这里的 “${ 必须相连,中间不能有空格,后边的 }” 也同样不能分开
再看几个小例子:
EL表达式比较字符串
和上面的例子类似,现在要循环 requestScope 中的 UsersList
依次和 sessionScope 中的 theUserId
做比较 ,重要代码如下:
其他的JSTL标签有些也同样需要注意格式
如有错误欢迎指正!
世界真奇妙~~~
- JSTL和EL表达式字符串比较
- jsp页面中,JSTL El表达式字符串比较常用方法
- el表达式和jstl
- EL和JSTL表达式
- EL和JSTL表达式
- JSTL和EL表达式
- EL和JSTL表达式
- jstl和el表达式
- JSTL和EL表达式
- el和jstl表达式
- JSTL和EL表达式
- EL表达式和JSTL
- EL表达式和JSTL
- el表达式和jstl
- EL和JSTL表达式
- EL表达式和JSTL
- JSTL和EL表达式
- EL表达式和JSTL表达式
- 输入字符串时的烦恼
- 深度神经网络
- 面经总结1——java集合框架
- Lesson02_C#基础_part04
- 文件命令行参数
- JSTL和EL表达式字符串比较
- 《农历算法》
- 限制玻尔兹曼机
- 用cocos2dx3.1的MenuItemToggle写一个会跳动音乐开关按钮
- 1999 ICPC WF C Morse Mismatches 【模拟】
- 《leetCode》:Pow(x, n)
- 51nod 1087 前缀和 STL lower_bound
- HDU 6105 Gameia(思维博弈)
- 2017.8.11个人感悟