struts2中往session中传入一个值users是list类型的.如下:
ActionContext.getContext().getSession().put("userbeans", users);我要在JSP页面显示LIST中的每个值,要如何在JSP页面显示呀.

解决方案 »

  1.   

    <s:iterator name="userbeans">
    <s:property value="userbeans.idb"/>  idb是我类中的一个属性
    </s:iterator>
    我这样写运行时错误..
    要咋写呀,谢谢了.
      

  2.   

    例如在action中定义
    private List<User> listUser;在页面中可以这样
    <s:iterator value = "listUser">
    <s:property value="User中都属性"/> 
    </s:iterator>
      

  3.   

    首先你确定到底ActionContext.getContext().getSession().put("userbeans", users); 里值是否设置进去
    你要在显示的jsp里把值显示一下看看从session里取出users试试看看什么结果,如果正常,你再考虑迭代标签如何使用,可能是你迭代标签不会用
      

  4.   

    我用${sessionScope.userbeans}可以显示,也就是我确定LIST里面有值[com.myself.action.vo.UserBean@262730, com.myself.action.vo.UserBean@d6e551, com.myself.action.vo.UserBean@694a18]public List <User> listUser; 
    我在返回时也是用的这样来写的类型
    我在JSP页面<s:iterator value = "userbeans"> 
    <s:property value="User中都属性"/> 
    </s:iterator>
    运行时提示我Attribute name invalid for tag iterator according to TLD
    这样的错误
      

  5.   

    试试
    <s:iterator value = "#session.userbeans"> 
    <s:property value="UserBean中都属性"/> 
    </s:iterator> 
      

  6.   

    应该是:
    <s:iterator name="userbeans">
    <s:property value="idb"/>  这地方只写属性名就行了,不要再带对象名了
    </s:iterator>
      

  7.   

    我的工程中的一段代码<s:iterator value="books">
      <tr>
         <td><input type="checkbox" name="isbns" value="<s:property value='isbn'/>"/></td>
         <td><s:property value="isbn"/></td>
         <td><s:a href="#" onmouseover="getBookInfo('%{isbn}');return false;"><s:property value="bookName"/></s:a></td>
         <td><s:property value="price"/>元</td>
         <td>
             <a href='<s:url action="Edit"><s:param name="isbn" value="isbn" /></s:url>'>编辑</a>
                                &nbsp;
             <a href='<s:url action="Remove"><s:param name="isbn" value="isbn" /></s:url>'>删除
    </a>
         </td>
      </tr>
    </s:iterator>
      

  8.   

    你的BOOKS也是传过来的是LIST吗
      

  9.   

    就是这样,不要user直接写属性名称
      

  10.   

    我在JSP页面中用到了STRUTS2的标签,我是不是只要在WEB.XML中增加以下内容就可以了呀,还可再增加其它的东西吗:
    <taglib>
    <taglib-uri>/struts-tags</taglib-uri>
    <taglib-location>/WEB-INF/lib/struts2-core-2.0.10.jar</taglib-location>
    </taglib>
      

  11.   

    还有在JSP页面也要增加
    <%@ taglib prefix="s" uri="/struts-tags" %>引入标签库
    还需要再填加其它的吗
      

  12.   

    除了用迭代我觉得还可以这样:
    ArrayList list=(ArrayList)request.getSession().getAttribute("userbeans");  //先得到session中的list
    <%
         for(int i=0;i<list.size();i++){
    A a=(A)list.get(i);//你的list对象
    <%=account.getName1()%> //现在输出
    <%=account.getName2()%>
            <%=account.getName3()%> 
            .....    
         }     
    %>
      

  13.   

    不好意思,上面写错了:除了用迭代我觉得还可以这样: 
    ArrayList list=(ArrayList)request.getSession().getAttribute("userbeans");  //先得到session中的list 
    <% 
        for(int i=0;i <list.size();i++){ 
            A a=(A)list.get(i);//你的list对象 
             <%=a.getName1()%> //现在输出 
             <%=a.getName2()%> 
            <%=a.getName3()%> 
            .....    
        }    
    %> 
      

  14.   

    如果你在action 中给了LIST get set 方法了
    那么你在页面
    直接写
    <s:iterator value="你的list" status="stuts">
    <s:property value="直接写泛型中的属性">   //如果你的list事隔泛型如果不是
    <s:property value="你的list.get(#stuts.getIndex())[0]"/>//显示第一个元素
                                                             [...]想显示你的查询语句中的第几个元素
    </s:iterator>
      

  15.   

    都用到stuts2了 建议就不要用 session向页面传值了
      

  16.   

    //userbeans List<String><s:set name="userlist" value="%{#session.get('userbeans')}">//get userbeans(list)
    <s:iterator value="%{#userlist}" id="listvalue">//iterator List<String>
    <s:property value="#listvalue"/>//if listvalue is a string or int or ... just pritn
    </iterator>
      

  17.   

    这是我action里面的写法
    ServletActionContext.getRequest().getSession().setAttribute("historyDealList", historyDealList); 
    这是页面的写法
    <s:iterator value="${historyDealList}" id="deal">
    <tr>
                                        <td height="38" class="table_content">
                                      <div align="center">  ${deal.departName }</div>
                                        </td>

    \</s:iterator>
      

  18.   

    Hi 楼主,。
    struts2中,iterator不能用name这个属性,所以是会报这个错:Attribute name invalid for tag iterator according to TLD 。
    我试了以上的做法,yulu0214同学提供的方法是可行的。给你参考我的代码(我也是参考yulu0214的):
    action中会提交一个ActionContext.getContext().getSession().put("rs", list);其中list的类型是:List<User> list,而User包含uid,uname,uvalid三个属性。
    JSP中的代码如下。
    <s:set name="userSet"value="%{#session.get('rs')}"></s:set>
    <s:iterator value="%{#userSet}" id="listValue">
    <tr>
    <td>
    <s:property value="uid"/> 
    </td>
    <td>
    <s:property value="uname"/> 
    </td>
    <td>
    <s:property value="uvalid"/> 
    </td>
    </tr>
    </s:iterator>
      

  19.   

    Map request = ActionContext.getContext().getSession().put("userbeans", users); 在jsp中如下:
    <s:iterator id="user" value="#request.userbeans">
       <s:property value="#user.name"/>
    </s:iterator>
      

  20.   

    我的可以啊!拿去对照一下!:<tr>
           <td class="table-title1" nowrap="nowrap">全选<input type="checkbox" onclick="fSelectAll(this,document.forms[0].id)"></td>
           <td class="table-title1" nowrap="nowrap">序号</td>
           <td class="table-title1" nowrap="nowrap">用户名</td>
           <td class="table-title1" nowrap="nowrap">年龄</td>
           <td class="table-title1" nowrap="nowrap">操作</td>
       </tr>
       
    <s:iterator value="userList" status="st">
    <tr class='t1' >
    <td nowrap="nowrap" style="text-align: center;"><input type="checkbox" name="id" value="1"></td>
    <td nowrap="nowrap"><s:property value="#st.count"/></td>
    <td >&nbsp;<s:property value="uname"/></td>

    <td nowrap="nowrap">
     <s:url id="updateURL" action="updateUser"></s:url>
    <a href="<s:property value="updateURL"/>" > 修改 </a>
    <s:url id="deleteURL" action="deleteUser">
    <s:param name="user.id" value="id"></s:param>
    </s:url>
    <a href="<s:property value="deleteURL"/>" >删除</a>
         </td>
       </tr>
       </s:iterator>
      

  21.   

    <c:forEach >标签迭代遍历
      

  22.   

    action中设置session值
    ActionContext actionContext = ActionContext.getContext();  Map session = actionContext.getSession();  session.put("user",user);
    jsp页面上接收;我用c标签接收的
    ${user}
      

  23.   


    在iterator标签中加一个id,这样输出的时候 aa.userbeans属性就行了,试试吧, 我都是这样用的,
      

  24.   

    我的jsp页面怎么不出现结果,怎么调都不行
    拜托了各位
    我的Action中试这样写的
       package cn.amisoft.server.actions;import java.util.List;
    import java.util.Map;import cn.amisoft.manager.service.IService;import com.opensymphony.xwork2.ActionSupport;
    import com.zl.pojo.Usertbl;public class QueryClientsStatusAction extends ActionSupport{ private IService service;
    private List list;

    public String execute() throws Exception {
    Map rtMap = service.execute(null);
    list = (List) rtMap.get("list");
    // Map returnmap=service.execute(null);
    // list=(List<Usertbl>)returnmap.get("list");
    return SUCCESS;
    }

    public void setService(IService service) {
    this.service = service;
    }

    public List<Usertbl> getList() {
    return list;
    }
        
    }我的Service是这样写的
    package cn.amisoft.server.service.impl;import java.util.HashMap;
    import java.util.List;
    import java.util.Map;import cn.amisoft.manager.service.AbstractService;public class QueryClientsStatusSrvImpl extends AbstractService{ public Map execute(Map map) throws Exception {
    Map retrunMap=new HashMap();
    String user_hql="SELECT username,unit,watchingip,watchingport FROM Usertbl order by id";
    List list=(List)dao.findBySQL(user_hql);
    retrunMap.put("list", list);
    return retrunMap;

    }
    }我的struts.xml是这样配置的
     <action name="queryClients" class="QueryClientsStatusAction">
    <result>/server/ClientsResult.jsp</result>
     </action>我的applicationContext.xml是这样配置的
    <bean id="QueryClientsStatusAction" class="cn.amisoft.server.actions.QueryClientsStatusAction" scope="prototype">
       <property name="service" ref="QueryClientsStatusSrv"></property>
    </bean>  

    <bean id="QueryClientsStatusSrv" class="cn.amisoft.server.service.impl.QueryClientsStatusSrvImpl" parent="AbstractService">
    </bean>我的结果jsp页面时这样写的
    <s:iterator value="list" status="i">
     <tr>
       <td align='center'><s:property value='#i.index' />&nbsp;</td>
       <td><s:property value="list[#i.index][0]"/>&nbsp;</td>
       <td><s:property value='list[#i.index][1]' />&nbsp;</td>
       <td><s:property value='list[#i.index][2]' />&nbsp;</td>
       <td><s:property value='list[#i.index][3]' />&nbsp;</td>
       <td align='center'><br></td>
     </tr>      
       </s:iterator>