Struts2的值栈

当页面发生请求后拦截器intercepter创建值栈valuestack,并初始化。valuestack中包含map和stack:map初始化后一般包含request,response,appalication,attrribute,parameter,等;stack初始化后包含action和另外一个对象。

拦截器modelDriven 封装model,params封装参数。将属性放入model中的属性,如果在model中找不到该属性则放入map中的parameters中。

值的获取:在jsp中通过ognl获取;在action中通过ActionContext.getContext().getValueStack()获取。

ognl的格式:在struts.xml中${};在jsp中%{}只能写到Struts自定义标签中

语法:user:相当于findValue("user")

#user:相当于map.get("user")

在值栈中findValue()在栈顶按指定的名称往下查找,如果找到后就返回,没找到则从map中查找key,再返回相应的值。

el表达式:当使用Struts后不再使用以前的request而是使用封装后的request,(在Struts中封装的request:request中没有找到值,再从findvalue)

你可能感兴趣的:(struts2)