首页 > 代码库 > struts2 值栈的理解

struts2 值栈的理解

之前工作中当遇到JSP在struts2取值的时候,对于# % 什么的使用一直处于不太明白的状态(虽然之前学习struts2的时候有学到过)。

今天再次遇到,整理一下。

Struts2的值栈学习笔记(二)

struts2上下文如上图所示。其中值栈里的内容我们经常用到的主要就是当前action的属性值。可以用s:debug标签看到。

对于在JSP里取值栈里的值:<s:property value="artist.bio" />

值栈里的值是可以“升级”的,使用的是set标签,其中可以用scope指明要升级到的范围:<s:set name="artistName" value="artist.name" scope="session" />

这时候的取值:<s:property value="#session[‘artistName‘]" />

可以看到,在非值栈(context)取值会加上#,这个是ognl语法。

特别要提到struts2的iterator标签:<s:iterator value="http://www.mamicode.com/deptVO" var="dept">

var定义的变量,不是在值栈里的,我猜测是在attr里面的(不确定,求大神指点。。。)。所以它的取值也需要加上#:<s:property value="http://www.mamicode.com/#dept.manager.gender"/>

 

struts2 值栈的理解