java web从零单排第十三期《struts2》OGNL上下文

1.什么是OGNL

Object-Graph Navigation Language 对象图导航语言。这种语言非常强大,可以存取任意对象的属性或者调用对象的方法,能够遍历整个对象的图结构,实现对属性类型的转换等功能,是struts2框架的特点之一。

2.什么是ONGL上下文

ONGL表达式的计算是围绕ONGL上下文进行的,我们以一个形象化的例子来看看触手可及ONGL上下文:

新建控制层test.java

package controller;

public class test {
	
	private String username;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
	public String execute()
	{
		username = "niujiabin";
		return "show";
	}
}

新建show.jsp,并在箭头处设置断点。

java web从零单排第十三期《struts2》OGNL上下文_第1张图片
在myeclipse的debug模式下运行test.action,可以看到variables面板:

java web从零单排第十三期《struts2》OGNL上下文_第2张图片

第二行就是我们所要找的OgnlContext(OGNL上下文),我们点开看看里面都有什么

java web从零单排第十三期《struts2》OGNL上下文_第3张图片

我们先找到root行。里面对存放的都是跟对象,是可以直接访问的,看看root里面有没有我们熟悉的东西

java web从零单排第十三期《struts2》OGNL上下文_第4张图片

没错,我们在action中定义username就在root下,我们可以这样总结:action中的属性会放在值栈中,并且是在root下。存放在root中的任何属性,我们都是可以直接访问的,取值的方式可以使用EL表达式:${username},关于EL表达式,不在本文章的范围,请同学自行学习。也可以用struts2标签来取值:<s:property value="username">

我们新建一个jsp来演示两种取值方法和结果:

java web从零单排第十三期《struts2》OGNL上下文_第5张图片

 

 

 

 

你可能感兴趣的:(java,Web,jsp,struts2)