zoukankan      html  css  js  c++  java
  • valuestack,stackContext,ActionContext.之间的关系以及action的数据在页面中取得的方法

     转自:http://blog.csdn.net/quechao123/article/details/4406148

    1.三者之间的关系如下图所示:

    relation

    2.action的数据在页面中取得的方法

    在struts2标签内部使用的表达式是%{}为OGNL表达式,在JSP页面中可以使用形式为${}为EL表达式。

    EG.如果取的值在valueStack中则直接引用即可,不需要#。但是如果指定id,就需要使用#,因为这时的参数是被放在stsckcontext中,而不是valuestack。eg.bean

         2.1

           如果需要引用valueStack中的值,需要使用这样的形式。

    <s:iterator value="#userList" /> //userList在action部分被保存在Request中,所以使用#加属性名来引用值。

    一般只要iterator用#引用了,下面的proper不用#,直接引用就可以了。

         2.2

    <s:textfield name="loginName" value="%{#request.loginNames}"/>

    先用#将Stack Context中reques作用域中的loginNames属性取出,然后使用OGNL表达式%{}将其在Struts2标签内表示出来(此处%{}见得不多。要注意!!!我的理解是,一般需要表示出来文本的才使用。如iterator的value则不需要)。          

    2.3

    如果是在JSP页面中,且不在Struts2标签内。则使用EL表达式 ${#request.loginNames}直接在HTML语句中表示。或者使用${requestScope.loginNames}

    2.4

    直接给一个iterator赋一个list,使用#{'a','b',....}

    如果是map,则#{'key1':'value1','key2':'value2',....}

    [java] view plain copy
     
    1. <s:iterator value="#{'憾地神牛':'01','矮子火枪':'02','沉默术士':'03'}" id="name1" status="st">  
    2. <tr <s:if test="#st.even">style="background-color:#bbbbbb"</s:if>>  
    3. <td><s:property value="key"/></td>  
    4. <td><s:property value="value" /></td>  
  • 相关阅读:
    对象布局已知时 C++ 对象指针的转换时地址调整
    采用栈数据结构的二叉树非递归遍历
    ZOJ 3481. Expand Tab
    “金山杯2007逆向分析挑战赛”第一阶段第二题
    “金山杯2007逆向分析挑战赛”第一阶段第一题分析
    对《神奇的C语言》文中例子 5 代码的分析讨论
    对"QQGame-大家来找茬"的辅助工具的改进
    memset 的实现分析
    ZOJ 1958. Friends
    HBase中MVCC的实现机制及应用情况
  • 原文地址:https://www.cnblogs.com/exe19/p/5382200.html
Copyright © 2011-2022 走看看