OGNL与Struts2结合
程序员文章站
2022-06-02 14:37:54
...
结合原理
ValueStack唯一的实现类OgnlValueStack中有 root 和 context 两个参数,值栈由这两部分组成。
栈原理
栈由ArrayList模拟
public class CompoundRoot extends ArrayList {
public Object pop() {
return remove(0);
}
public void push(Object o) {
add(0, o);
}
}
使用debug标签查看值栈中两部分内容
Root
默认情况下,栈中存放当前访问的action对象。
Context
在参数接收中的体现
实现模型驱动只需要在赋值前将接受参数的对象压入栈顶。
模型驱动struts2框架中是在params拦截器中对表单的参数赋值,params拦截器是在action执行之前,所以想要在action中将对象压入栈顶就需要实现一个在params拦截器执行之前的接口,在这个接口重写的方法中将接受参数的对象压入栈顶,
struts-default.xml原码
理论上在params拦截器之前的都可以实现,struts2提供了ModelDriven接口。
获得值栈
值栈和ActionContext互相引用。
在配置文件中的体现
语法: ${ognl表达式 }
request对象的getAttritube()方法执行顺序
推荐阅读
-
Struts2 OGNL表达式、ValueStack
-
天图投资董事总经理李竞:AI、大数据与零售的结合是未来趋势
-
SpringBoot与docker的结合的示例
-
SpringBoot与velocity的结合的示例代码
-
传统渠道与网络渠道结合的交叉点分析
-
浅要分析Python程序与C程序的结合使用
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之五(三十一)
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之八(三十四)
-
socket io与vue-cli的结合使用的示例代码
-
智能音箱与电视盒子结合体 天猫精灵魔盒上手