我在JSP页面中打印出Context Map中的属性
<%
    ActionContext cxt = ActionContext.getContext();
    out.println("<h2>ContextMap</h2>");
    Map map = cxt.getContextMap();
    Set set = map.entrySet();
    for (Iterator it = set.iterator(); it.hasNext();)
    {
        Map.Entry es = (Map.Entry) it.next();
        out.print(es.getKey());
        out.println("<br/>");
    }
%>在打印出来的内容并没有发现“root”和“context”然而我直接使用:
<s:property value="#root"/>
<s:property value="#context"/>却能打印出ValueStack.root和OngnlContext这个2个对象请问:Struts2中的OGNL里是否存在隐藏属性?

解决方案 »

  1.   

    root,context是什么属性??没用到过
      

  2.   

    我的页面中只有3行数据(除了一些HTML[例如:Html, Head, Body])
    下面是我的页面代码:<%@ taglib prefix="s" uri="/struts-tags"%>
    <html>
        <body>
            <s:property value="#root"/> 
            <s:property value="#context"/> 
        <body>
    </html>
    <%-- end -->
      

  3.   

    当然包含隐藏属性。在jsp中使用<s:debug />标签,可以看到。去看看吧。
      

  4.   


    看不到的。而且使用<s:debug />标签,在input返回页面还会报Excepiton。
      

  5.   

    不要直接访问jsp。
    从Action请求转向jsp。即:http://localhost:8080/Login.action进入。
      

  6.   

    建议你看看ognl的资料就明白了
      

  7.   

    ognl的参数前面有#号的说明参数不是在valuestack中。valuestack同级别的context用来方便使用底层的servlet api,比如request和session等等。
    我说的可能有点小错误。建议查OGNL的结构图,就明白了 
      

  8.   

    <s:hidden property="xx"  value="%{xx}"/>