今天在做一个登录模块时,想再登录之后的首页上显示登陆者姓名,自然就想到在action里将登陆者姓名传入session中,然后在页面通过ognl提取信息,action代码如下:

1 if(us.getUser_name().equals(username)&&us.getPassword().equals(password))
2             {
3                     ActionContext.getContext().getSession().put("user_login",username);//将登陆信息放入actioncontext中
4                 //ServletActionContext.getRequest().getSession().setAttribute("user_login",username);
5                 return SUCCESS;
6             }

页面显示代码:

1 <div id="huanying"><s:property value="#user_login"/>,欢迎你!

然后,就出问题了……取不到值;

当时我就在想啊,session应该是在valueStack中的context中的,通过ognl的#+属性值的方法应该可以的啊,怎么也想不通。于是用request(用的是转发即默认,不是重定向)和context都试了一下,结果是只有放入context中的值才能被取出来。这就尴尬了,,,,开始,我还怀疑是值没存进session和request中,因此我用el表达式测了一下,完全没问题,所以我就想是不是自己的ognl写错了。结果一度娘,果然出了问题,ognl虽然可以提取所有值域中的值,但是如果是session或者request中的值就必须要加上相关的域名:

1 <s:property value="#session.user_login"/>//取存在sessiong中的值
2 <s:property value="#request.user_login"/>//取存在request中的值(前提是转发而不是非定向)

ognl默认是直接从context中取值,所以才出了问题。EL表达式是从四大作用域按从小到大的顺序取值。

  哎……还是学艺不精啊。。。。。。不过问题虽然小,但也算是一种积累啦……

转载于:https://www.cnblogs.com/jkavor/p/5535874.html

ognl表达式的小知识点相关推荐

  1. java actioncontext_struts2(四) ognl表达式、值栈、actionContext之间的关系

    今天来说说ognl表达式在struts2中的运用. --WZY 一.什么是Ognl? 通过百度百科查询到的解释,其中详细的说明了OGNL的作用. 下面我们就对OGNL这5个作用进行讲解 1.存取对象的 ...

  2. Struts2漏洞分析之Ognl表达式特性引发的新思路

    摘要 在Ognl表达式中,会将被括号"()"包含的变量内容当做Ognl表达式执行.Ognl表达式的这一特性,引发出一种新的攻击思路.通过将恶意代码存储到变量中,然后在调用Ognl表 ...

  3. struts2教程(9)--OGNL表达式使用

    OGNL表示式使用和值栈 一.介绍 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用OGNL作为默认的 ...

  4. Python之——遇到的小知识点总结

    学习过程中,难免会遇到一些冷门的小知识点,熟悉这些小知识可以在工作中达到事半功倍的效果,尽力消除自己的知识盲区.总之当时的自己花了不少功夫去解决这些问题,因此觉得有必要单独记录下来,以后也许会再遇到, ...

  5. Struts2中的OGNL表达式

    基础知识(三) Struts2中的OGNL表达式 浅析值栈 ValueStack对象相当于一个栈,它贯穿整个Action的生命周期,每个Action类的对象实例都会拥有一个ValueStack对象 当 ...

  6. java值栈_Struts2学习笔记-Value Stack(值栈)和OGNL表达式

    只是本人的Struts2学习笔记,关于Value Stack(值栈)和OGNL表达式,把我知道的都说出来,希望对大家有用. 一,值栈的作用 记录处理当前请求的action的数据. 二,小例子 有两个a ...

  7. 关于Struts2中的值栈与OGNL表达式

    1.1.1    OGNL概述: Object Graphic Navigation Language(对象图导航语言)的缩写 * EL     :OGNL比EL功能强大很多倍. 它是一个开源项目. ...

  8. Struts2中使用OGNL表达式语言访问静态方法和静态属性以及我遇到的问题和解决方法

    1.上一篇文章,我介绍了OGNL表达式语言,本来想在那篇文章上加上一个使用OGNL访问静态方法和静态属性的例子,但是昨天晚上我写代码时,报了一个警告,获取得到静态属性的值,却获取不到静态方法的返回值, ...

  9. c++的一些小知识点

    自己总结的一些小知识点,希望能够对大家有帮助. bool:1 char:1 wchar_t:2 char16_t:2 char32_t:4 short:2 int:4 long:4 long long ...

  10. OGNL表达式的使用方法

    OGNL表达式的使用方法 定义: OGNL是对象图导航语言(即该表达式访问的是对象及对象的属性) 知识点: 1.基本属性的访问 1.1 访问值栈中action的普通属性 [xhtml:nogutter ...

最新文章

  1. 工厂模式、构造函数入门
  2. Linux中如何运行.AppImage文件
  3. Java_io体系之CharArrayReader、CharArrayWriter简介、走进源码及示例——13
  4. BZOJ 1071组队
  5. Java基础学习总结(176)——JDK 16 正式发布,一次性发布 17 个新特性
  6. 字符串匹配---KMP
  7. 博途调试g120_【免费资料】西门子变频器调试软件汇总
  8. python 规则引擎 drools_SpringBoot2整合Drools规则引擎及案例详解
  9. node+express 使用multer进行文件上传,并且以PM2启动时的错误
  10. 2018研究生毕业论文重复率检测八要点
  11. C#_CRC-16/CCITT-FALSE计算加判断
  12. oracle上机题库_Oracle笔试题库附参考答案
  13. ofo小黄车仍在自动续费!如何关闭微信自动扣费?
  14. 长春工业大学计算机研究生专业课,长春工业大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  15. 3、太阳能电池板参数解析
  16. Go语言 - 并发控制
  17. Java职责链模式详解
  18. sin函数对照表_初中常用三角函数值对照表
  19. Google - Colab实验室 - 柯基犬猫咪
  20. EMI滤波器的matlab仿真,开关电源EMI滤波器的仿真设计

热门文章

  1. Atitit .c#的未来新特性计划草案
  2. paip.QQ音乐导出歌单总结
  3. PAIP.获取RSS全文输出.txt
  4. 7 年零故障支撑双 11,消息中间件 RocketMQ 如何做到?
  5. 机器学习笔记(七):线性回归 | 凌云时刻
  6. Kafka从上手到实践 - 初步认知:Zookeeper | 凌云时刻
  7. 【优化算法】寄生-捕食算法(PPA)【含Matlab源码 1801期】
  8. 【图像重建】基于matlab主成分分析图像压缩重建【含Matlab源码 1173期】
  9. linux流量管家安装失败,解决Linux流量统计软件vnstat安装后无法统计流量的问题...
  10. 下标超出数量 oracle,超出最大会话数和Ora-00020超出最大进程数错误的解决方法...