public List<HandlersMenu> getMenusByUserId(){
Handlers handlers = (Handlers) this.getRequest().getSession().getAttribute(Constants.SESSION_USER_OBJECT);
return menusList=this.pcManager.getMenusByUserId(handlers.getUId());
       
}
<s:iterator value="menusList" id="menus">
<tr>
  <td width="9%" height="20" ><img id="xiaotu1" src="../images/ico06.gif" width="8" height="12" /></td>
  <td width="91%"><a href="${menus.menuUrl}" target="mainFrame" class="left-font03" onClick="tupian('1');">${menus.menuName}
   </a></td>
</tr>
</s:iterator>
我是这样写的 ,但是得不到啊

解决方案 »

  1.   

    你这样肯定得不到哦,必须是action跳转到jsp页面。同事你的menusList定义为action的成员变量,并实现get/set方法。
      

  2.   

    get/set方法是有的,而且menusList也定义了成员变量。那action跳转到jsp页面你指的是什么意思呢?
      

  3.   

    还有,struts2没有execute方法,那我怎么才能把自己写的方法的数值,在jsp页面上获得?
      

  4.   

     struts2中可以自己定义方法呀,,在配置文件中有个method属性,在那配置指定方法名就行了
      

  5.   

    如<action name="addServiceAction" class="com.efeather.tyco2.action.sever.ServiceDCLInfoAction" method="add">
    那个add就是提交执行的方法
      

  6.   

       public List<HandlersMenu> getMenusByUserId(){
            Handlers handlers = (Handlers) this.getRequest().getSession().getAttribute(Constants.SESSION_USER_OBJECT);
            return menusList=this.pcManager.getMenusByUserId(handlers.getUId());
              
        }以上代码是在Action中写的吗?1.如果是:
    <s:iterator value="menusByUserId" id="menus">2.如果不是:
    必须把查询的结果放到request中,例:request.setAttribute("menusList", 查询结果);
    <s:iterator value="#request.menusList" id="menus">
      

  7.   

    楼主那个代码。
    struts2已经把request全部封转了,你只要直接写一个与你的jsp页面上相同的list名称,通过设置它的get/set方法就可以获得啦,再说struts2中叶不是那样获得getSession的。。
      

  8.   

    需要在action中 注册一下 就把你要声明的list get set一下
      

  9.   

    超链接中不要用el表达式了~~直接menus.XXX试试
      

  10.   

    先别说这个LIST能否得到,首先确认你的流程是否有没问题(hello world),请求-》处理-》返回,这个过程能否正常的完成,如果不能,请确认你的配置是否有问题。如果这步没问题
    请确认你的list种是否有数据,如果有数据,该确认的就是其他的细节,楼上各位已经提及。
      

  11.   

    <action name="addServiceAction" class="com.efeather.tyco2.action.sever.ServiceDCLInfoAction" method="add"><s:set property="menusList"></set>
    <s:iterator value="menusList" id="menus">                
                    <tr>
                      <td width="9%" height="20" ><img id="xiaotu1" src="../images/ico06.gif" width="8" height="12" /></td>
                      <td width="91%"><a href="${menus.menuUrl}" target="mainFrame" class="left-font03" onClick="tupian('1');">${menus.menuName}
                      </a></td>
                    </tr>
                    </s:iterator>
      

  12.   

    struts2中可以自己定义方法呀,,在配置文件中有个method属性,在那配置指定方法名就行了
      

  13.   

    1。menusList  提供get方法
    2。把menusList放到request中去这样就能获取到。
      

  14.   


    <s:iterator value="list">
         <tr align="center">
         <td><s:property value="loginName"/></td>
         <td>
         <s:a action="detail">
         <s:text name="look"></s:text>
         <s:param name="id" value="id"></s:param>
         </s:a>
         </td>
         </tr>
        </s:iterator>这是我的实例,是读取用户列表的。其中接收的list是一个类型为List<User>的参数。
    而User里就有一个loginName的属性。在Action里对这个list有一个public的getList方法。
    这样从Action跳转到Jsp后,就能读到了。另外输出属性loginName,我是用了<s:property value="loginName"/>这一句。
    Action里有自己的一套栈基制,你去了解一下,比单纯的request存取,要深一点,表面上看起来很麻烦,实际上会帮你解决很多问题。用多了才知道。
      

  15.   

    有问题到javakt.com来这里有java专家在线远程支持....
      

  16.   

    我是这样做的:
    <s:if test="list.size > 0">
    <s:iterator value="list" status="RowStatus" id="financial">
    <tr class='<s:if test="#RowStatus.even == true">tableRow1</s:if>'>
    <td><input type="checkbox" name='ids'
    value='<s:property value="id" />' /></td>
    <td><s:property value="description" /></td>
    <td><s:property value="count" /></td>
    <td><s:property value="type" /></td>
    <td><s:date name="date" format="yyyy-MM-dd"></s:date></td>
    <td><s:property value="operatorNumber" /></td>
    <td><s:a href="viewFinancial.action?id=%{#financial.id}">查看</s:a>
    | <s:a href="deleteFinancial.action?id=%{#financial.id}"
    onclick="return confirm('你确定要删除该记录吗?');">删除</s:a></td>
    </tr>
    </s:iterator>
    </s:if>