博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OGNL与ValueStack(VS)-N语法top语法(转)
阅读量:6387 次
发布时间:2019-06-23

本文共 869 字,大约阅读时间需要 2 分钟。

N语法[0]:<s:property value="[0]"/><br>

N语法[1]:<s:property value="[1]"/><br>

N语法[0].top:<s:property value="[0].top"/><br>

N语法[1].top:<s:property value="[1].top"/><br>

N语法top:<s:property value="top"/><br>

N语法取值:<s:property value="[0].user.username"/><br>

N语法取值:<s:property value="top.user.username"/><br>

说明:规定栈顶的对象为[0],而我们只使用[0]的意思是从值栈中第一个对象取,一直取至栈底。N的意思是从值栈中的第N个对象开始,取到栈底为止。如果要想访问某个对象,需要使用[N].top,它的意思是取出符合N语法的栈顶对象,比如在这里,[0]会取出两个对象,而[0].top是取出这两个对象的栈顶对象。纯top可以简洁地取出值栈中的栈顶对象。
为什么要提出N语法,当我们通过chain链访问时,值栈中可能有两个以上的Action对象,如果这些对象中存在相同的属性,N便能正确区分他们。通常,这些Action对象的入栈顺序是:先访问先入栈。

从上面的N语法取值实例中,我们知道[N]top语法的一个重要作用就是能通过它们引用值栈对象中的属性。结合前面的五种[N]top语法实例,不难理解这里的取值实例。

补充:在此实例中,我们用<s:debug>调试会发现,值栈中还有一个DefaultTextProvider对象(因为此Action继承自ActionSupport),它的作用是获取资源文件中的内容(其实本质是ActionSupport重写了getText()方法),这也就是在国际化问题中我们能直接调用它的getText()方法的原因。

转载于:https://www.cnblogs.com/Syria/p/6671273.html

你可能感兴趣的文章
执行代码及时清空缓冲区
查看>>
CNN原理
查看>>
deconvolution layer parameter setting
查看>>
P1274 魔术数字游戏 naive搜索+剪枝
查看>>
低通滤波器对实际控制系统的作用
查看>>
Hadoop阅读笔记(七)——代理模式
查看>>
Address类
查看>>
Java Web整合开发(9) -- 自定义标签
查看>>
高可用性系统在大众点评的实践与经验(转)
查看>>
ASP.NET-FineUI开发实践-15
查看>>
Nodejs高性能服务架构:cluster模式+Nginx多进程模式
查看>>
js声明
查看>>
java学习笔记-常用类(四)
查看>>
进程池
查看>>
利用iframe和form上传和预览图片
查看>>
模板类中如何定义友元函数?
查看>>
Jmeter实现对mysql的增、删、改、查
查看>>
微信支付遇到的坑
查看>>
.NET中数据库的连接方法
查看>>
【转】一步一步学Linq to sql(四):查询句法
查看>>