private List list=null;
public List getList() {
return list;
} public void setList(List list) {
this.list = list;
} public String query(){
list=server.queryAll();
return "listall";
}queryAll方法中的list是ArrayList,存储的是也为数组。返回的页面:
<s:iterator value="这个地方写什么才能取到action中返回的List" status="admin" id="listss">
<tr> <td height="25" align="center">
&nbsp;<s:textfield name="serverip" value="%{#request.serverInfo[#admin.index][0]}"> </s:textfield>
</td>
<td align="center">
&nbsp;<s:textfield name="serverip" value="%{#request.serverInfo[#admin.index][1]}"> </s:textfield>
</td>
<td align="center">
<s:submit value="修改"></s:submit>
</td>
</tr>
</s:iterator>

解决方案 »

  1.   

    写错了,是一维数组。原value="#request.serverInfo",这样设置:request.setAttribute("serverInfo",list);
      

  2.   

    Action里面  相当于1.2的Request ActionContext.getContext().put("list", list);在页面上依然可以使用C标签  <c:forEach items="${list}" var="list"> ${list.值}
    <c:forEach>
      

  3.   

    谢谢你的提示,这样写可以取到List,但是<s:textfield>的值又取不到了。
    <s:iterator value="%{list}" status="admin" id="listss">
    <tr>
    <td height="25" align="center">
    <s:textfield name="serverip" value="显示数组的第一个值得应该怎么写"> </s:textfield>
    </td>
    <td align="center">
    <s:textfield name="serverip" value="显示数组的第二个值得应该怎么写"> </s:textfield>
    </td>
    <td align="center">
    <s:submit value="修改"></s:submit>
    </td>
    </tr>
    </s:iterator>
      

  4.   

    如果返回的是一维数组的话 取值是可以用c标签
    例如:
     <c:forEach items="${list}" var="list" varStatus="status">
         <tr><td>${list}</td></tr>
         </c:forEach>
      

  5.   

    <s:iterator value="#request.allAdmin" status="admin" id="dd"> 
      <tr> 
      <td height="25" align="center">  <s:property value="#dd[0]"/>  </td> 
      <td align="center">  <s:property value="#dd[1]"/>  </td> 
      </tr> 
      </s:iterator> 
      

  6.   

    <s:property value="#dd[0]"/>跟<s:iterator value="#request.allAdmin" status="admin" id="dd"> 是没问题的,request.setAttribute("serverInfo",list);这样设置可以显示。现在我不用request.setAttribute("serverInfo",list);啊,我直接在action里面让list=查询结果,然后这样写:<s:iterator value="%{list}" status="admin" id="listss"> 
    <s:textfield name="serverip" value="显示数组的第一个值得应该怎么写"> </s:textfield>这个地方不知道怎么取值了
      

  7.   

    如果你的值是在aciton里面用List list=查询结果了 那你返回到页面的时候肯定是要request.setAttribute("list",list);
    你在页面写的时候依旧可以像下面这样
    <s:iterator value="${list}" status="admin" id="dd"> 
    <tr> 
    <td height="25" align="center"> 
    <s:textfield name="serverip" value="<s:property value='#dd[0]'/>"> </s:textfield> 
    </td> 
    <td align="center"> 
    <s:textfield name="serverip" value="<s:property value='#dd[1]'/>"> </s:textfield> 
    </td> 
    <td align="center"> 
    <s:submit value="修改"> </s:submit> 
    </td> 
    </tr> 
    </s:iterator> 还有<s:iterator value="${list}" status="admin" id="dd"> 
    这个地方时用$不是%
      

  8.   

    <s:iterator value="#request.allAdmin" status="admin" id="dd"> 
      <tr> 
      <td height="25" align="center">  <s:property value="#dd[0]"/>  </td> 
      <td align="center">  <s:property value="#dd[1]"/>  </td> 
      </tr> 
      </s:iterator> 我这里这段代码只是告诉你如何拿一个一维数组的第一个值和第二个值
      

  9.   

    <s:iterator value="%{list}" status="admin" id="listss">
    <tr>
    <%System.out.println("你好啊"); %>
    <td height="25" align="center">
    <!--<s:textfield name="serverip" value="%{listss[0]}"> </s:textfield>-->
    </td>
    <td align="center">
    <!--<s:textfield name="serverip" value="%{listss[1]}"> </s:textfield>-->
    </td>
    <td align="center">
    <s:submit value="修改"></s:submit>
    </td>
    </tr>
    </s:iterator>
    我是用%的啊,list里面有两条记录,控制台打印出来了两个"你好啊",所以我觉得用%是没问题的。
    至于request.setAttribute("list",list); 
      

  10.   

    至于request.setAttribute("list",list); 
    http://topic.csdn.net/u/20100119/10/9d39854d-e8f6-47e0-9bc3-ab884c27c088.html
    这个帖子中的人说struts2说不用,有list的get/set方法就可以了。我是第一次用struts2,不知道行不行,之前用 struts1就是用request.setAttribute("list",list); 返回值的
      

  11.   

    如果你想不用request.setAttribute("list",list); 
    那你在action类里面需要定义一个private List list;然后给它get和set方法 然后在方法里面让list=查询结果就ok了 最好是调用setList(查询结果)然后在页面之接用<s:iterator value="%{list}" status="admin" id="listss">这个就ok了
      

  12.   

    el表达式是用$,但是在页面上写:
    <s:iterator value="${list}" status="admin" id="listss">
    <tr>
    <%System.out.println("你好啊"); %>
    <td height="25" align="center">
    <!--<s:textfield name="serverip" value="%{listss[0]}"> </s:textfield>-->
    </td>
    <td align="center">
    <!--<s:textfield name="serverip" value="%{listss[1]}"> </s:textfield>-->
    </td>
    <td align="center">
    <s:submit value="修改"></s:submit>
    </td>
    </tr>
    </s:iterator>报这样的错误:
    javax.servlet.ServletException: org.apache.jasper.JasperException: /server/serverlist.jsp(56,2) According to TLD or attribute directive in tag file, attribute value does not accept any expressions
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
    root cause org.apache.jasper.JasperException: /server/serverlist.jsp(56,2) According to TLD or attribute directive in tag file, attribute value does not accept any expressions
      

  13.   

    是这样的啊,<s:iterator value="%{list}" status="admin" id="listss">
    这个在控制台上可以打印出了循环语句
    我是问之后的:<s:textfield name="serverip" value="这里怎么取值"> </s:textfield> 
    <s:textfield name="serverip" value=" <s:property value='#listss[1]'/>"> </s:textfield> 
    这样子写,页面上文本框里面显示的就是:<s:property value='#listss[1]'/>
      

  14.   

    用s标签的话 应该这样写<s:iterator value="#request.list" status="admin" id="listss"> 
      

  15.   

    用request.setAttribute("list",list);才这样写的吧。我现在有set get方法返回list没用request.setAttribute("list",list); 啊 
      

  16.   

    大哥 是一样的道理啊 你这样还是可以用的 request就是你一个请求啊
      

  17.   

    java代码:
    public class ServerAction extends ActionSupport {
    private List list;
    /**
     * 服务信息处理类
     */
    private Server server=new Server();
    public String query(){
    list=server.queryAll();
    return "listall";
    }
    public List getList() {
    return list;
    } /**
     * @param list the list to set
     */
    public void setList(List list) {
    this.list = list;
    }
    }public class Server {
    public List queryAll(){
    String sql="select serverIP,serverPort from co_server";
    List list=null;
    try {
    list = jdbc.getQueryResult(sql);
    //HttpServletRequest request = ServletActionContext.getRequest();
    //request.setAttribute("serverInfo",list);
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return list;
    }
    }
      

  18.   

    serverlist.jsp <s:iterator value="%{list}" status="admin" id="listss">
    <tr>
    <%System.out.println("你好啊"); %>
    <td height="25" align="center">
    <s:textfield name="serverip" value="<s:property value='#listss[0]'/>"> </s:textfield>
    </td>
    <td align="center">
    <s:textfield name="serverip" value="<s:property value='#listss[0]'/>"> </s:textfield>
    </td>
    <td align="center">
    <s:submit value="修改"></s:submit>
    </td>
    </tr>
    </s:iterator>struts.xml:
       <package name="servercode" extends="struts-default">
            <action name="*Server" class="com.zoyechina.consumption.action.server.ServerAction" method="{1}">
               <result name="listall">server/serverlist.jsp</result>
            </action>
        </package>
      

  19.   

        public List getQueryResult(String sql) throws SQLException {
            List results = new ArrayList();
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            try {
                DBConnection dbcon = new DBConnection();
                //conn = dbcon.getWebConnection();
                conn = dbcon.getConnectionFile();
                if (conn == null) {
                    System.out.println("未能获得连接");
                    return null;
                }
                stmt = conn.createStatement();
                rs = stmt.executeQuery(sql);
                ResultSetMetaData rsmd = rs.getMetaData();
                int col = rsmd.getColumnCount();
                while (rs.next()) {
                    String rows[] = new String[col];
                    for (int i = 0; i < col; i++) {
                        rows[i] = rs.getString(i + 1);
                    }
                    results.add(rows);
                }
            }
            catch (SQLException sqlex) {
                throw sqlex;
            }
            finally {
                closeResultSet(rs);
                closeStatement(stmt);
                closeConnection(conn);
            }
            return results;
        }
      

  20.   

    serverlist.jsp <c:forEach items="${list}" var="str" varStatus="status">
    <tr> 
    <td height="25" align="center"> 
    <s:textfield name="serverip" value="${str[0]}"> </s:textfield> 
    </td> 
    <td align="center"> 
    <s:textfield name="serverip" value="${str[1]}"> </s:textfield> 
    </td> 
    <td align="center"> 
    <s:submit value="修改"> </s:submit> 
    </td> 
    </tr> 
    </c:forEach>
      

  21.   

    serverlist.jsp:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


    <c:forEach items="${list}" var="str" varStatus="status">
    <tr> 
    <td height="25" align="center"> 
    <s:textfield name="serverip" value="${str[0]}"> </s:textfield> 
    </td> 
    <td align="center"> 
    <s:textfield name="serverip" value="${str[1]}"> </s:textfield> 
    </td> 
    <td align="center"> 
    <s:submit value="修改"> </s:submit> 
    </td> 
    </tr> 
    </c:forEach>还是错误:description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
    root cause javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:275)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      

  22.   

    http://zhidao.baidu.com/question/93417067.html你看看你出的整个异常
      

  23.   

    搞定了。代码如下:
    <s:iterator value="%{list}" status="admin" id="listss">
    <tr>
    <td height="25" align="center">
    <s:textfield name="serverip" value="%{#listss[0]}"></s:textfield> 
    </td>
    <td align="center">
    <s:textfield name="serverip" value="%{#listss[1]}"> </s:textfield> 
    </td>
    <td align="center">
    <s:submit value="修改"></s:submit>
    </td>
    </tr>
    </s:iterator>
      

  24.   

    忘记问你的页面是否禁用了el表达式
    在你的jsp页面内的page指令内有没有加一句这样的话isELIgnored="true"
      

  25.   

    呵呵,可以使用el表达式的,现在学习struts2,就想用下s标签。