Javadream

          A long way and a dream.

          理解WW的ValueStack

          Posted on 2007-07-06 17:48 oxl 閱讀(1102) 評論(0)  編輯  收藏 所屬分類: 技術感語
          跟著《Webwork in Action》學到了OGNL,一直對ValueStack的概念很模糊,而書里也沒有介紹清楚,我一直以來連ValueStack里Action是在棧頂呢還是在哪里一層都不清楚,怎么把一個自定義的對上push到ValueStack上,如果在action的execute中push,他是在棧頂呢,還是次于Action呢?

          其實在WW中,ValueStack的棧結構是這樣的,在執行Action之前把Action壓入棧,這時Action就是棧頂,然后在Action.execute()時再把自定義的bean壓入棧,那么這時這個自定義的bean就在棧頂了。所以在下面這樣的JSP代碼中,是先從自定義bean查起,然后才到Action。
          <ww:property value="name" />

          在ActionContext上下文中,默認是從OgnlValueStack去查找,因為這樣,所以在在查找OgnlValueStack的值時是不用#來標明它所在的值棧。而像Session和Application這樣的Map,則需要前綴,像這樣:#session.xxx,#application.xxx。

          至于怎么在ActionContext中添加類似于Session的Map,只有一個方法就是調用put方法。

          講得很粗略,不過內里已經了清楚了。
          主站蜘蛛池模板: 华阴市| 枣庄市| 光泽县| 安丘市| 罗源县| 新巴尔虎右旗| 元氏县| 宁安市| 柳州市| 淮阳县| 东海县| 修武县| 永仁县| 临夏市| 县级市| 衡东县| 那坡县| 华容县| 泰和县| 吉林市| 松溪县| 安丘市| 芮城县| 宁城县| 房山区| 错那县| 县级市| 交城县| 开远市| 崇仁县| 黔东| 郓城县| 河津市| 舞阳县| 通榆县| 惠东县| 盈江县| 青铜峡市| 乾安县| 汤原县| 阿城市|