Struts2-9.OGNL

9.1什么是OGNL

OGNL 的全称是 Object Graph Navigation Language,即对象导航图语言。它是一个开源项目,工作在视图层,用来取代页面中的 Java 脚本,简化数据的访问操作。

9.2 OGNL使用原则

    存在值栈的数据可以直接取,而存在非值栈的数据就要通过#来获取
    以下案例是通过手工的方式来设置context和root

Root的数据是可以直接访问,而非root的资源需要加“#”

9.3 OGNL+StrutsTag

OGNL 要结合 Struts 标签来使用。由于比较灵活,也容易把人弄晕,尤其是“%”、“#”、“$”这三个符号的使用。

a) ”#” 符号

    (1)访问非根对象的属性,如 ActionContext 上下文,由于 Struts 2 中值栈被视为根对象,所以访问其他非根对象时,需要加“#”前缀。
    例如#session.msg 表达式,实际上,#相当于 ActionContext.getContext();#session.msg表达式相当于 ActionContext.getContext().getSession().getAttribute("msg")
    (2) 用来构造 Map,使用过“#”符号构造 Map,
    例如“#{‘key1’:‘value1’, ‘key2’:‘value2’, ‘key3’:‘value3’}”,这种方式

b) ”%” 符号

    “%”符号是在标签的属性值被理解为字符串类型时,告诉执行环境%{}里的是 OGNL表达式。%符号的用途是在标志的属性为字符串类型时,计算 OGNL 表达式的值,如下面的代码所示:

c) ”$” 符号

    (1) 在国际化资源文件中,引用 OGNL 表达式。例如,国际化资源文件中的代码:
    reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间
    (2) 在 Struts 2 配置文件中,引用 OGNL 表达式,例如下面的配置:
    <action name="pageAction" class="com.dream.action.PageAction">
             <result name="success">/${pageName}.jsp</result>   
    </action>

9.4 OGNL融入框架

全部评论

相关推荐

牛客52811839...:实习要写出来业务和产出,你这写的像流水账没人看。项目经历也没有,换个极简简历试试
点赞 评论 收藏
分享
03-13 00:04
已编辑
吉林大学 Java
约面的挺突然。。狠下心接了1.自我介绍2.讲讲JAVA的反射3.可以继续讲讲AOP,动态代理[&nbsp;因为讲反射不小心吟唱到了例如AOP的动态代理,但是这块记忆的非常不熟,结果磕磕绊绊&nbsp;]4.项目我看你写了AOP和注解,具体怎么实现滑动窗口限流的[&nbsp;梦到什么说什么,吟唱八股发散千万不要散到自己不熟悉的区域&nbsp;]5.也讲讲为什么另一个项目选择令牌桶,具体流程6.&nbsp;OK,讲讲&nbsp;Redis&nbsp;的数据类型?还有吗?就了解这五种嘛[&nbsp;把5个的基础类型从应用对比到历届底层全都吟唱了一遍。一句还有吗直接没力气了,简历就写了理解5种,别的我是真一点没看TT&nbsp;]7.讲讲Redission分布式锁实现8.这个指数退避怎么实现的9.在这里有考虑去保障幂等性嘛10.这里为什么使用指数退避呢?&nbsp;什么时候用均匀重传[已经晕过去了说不了解,刚说了后就意识到,估计应该说指数退避能缓解压力防止下游服务器雪崩之类的]11.ok,那讲讲JMM12.讲讲RocketMQ如何保证的不丢消息13.讲讲RocketMQ延迟消息原理14.讲讲项目Redis实现会话记忆这一块15.如果ai调用function&nbsp;calling出现幻觉,有考虑怎么解决吗?[&nbsp;不了解,面试官说什么接口幂等化,高危操作人工防护,没在听,感觉人已经飞升了TT&nbsp;]16.mcp了解嘛?和function&nbsp;calling有什么区别[&nbsp;依旧不了解,只能说了个前者规范架构抽象解耦,后者耦合高只能算个工具调用]17.AI生成代码的代码质量怎么保障,那平时如何review的呢18.算法。lc215&nbsp;&nbsp;数组中最大第k个元素19.打算考研还是本科就业20.反问1️⃣有哪里不足,有哪些需要提高的部分。[主要说知识广度不够,多刷算法,让我别太紧张]2️⃣部门业务会做什么人生第二次面试。感觉大厂面试官的气场压力很大应该凉了不过这次面试非常锻炼心态,多面试,多面试。
冰炸橙汁_不做oj版:redis除了五种基本数据类型,其他的几种还是要掌握一下的,挺常用
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务