{list} 这个前台可以显示不? 迭代时不是写错了。{#li.t_email}

解决方案 »

  1.   

    可以,我前几个就是这样写的。现在是想在页面载入时查询数据库,然后将数据显示在页面上。后台list都是有值得
      

  2.   

    就是先执行action,然后就有数据了,在执行jsp
      

  3.   

    这个要看你action中是把值放到栈中还是map映射中了。能贴一下你action中存放数据的代码莫
    比如:
       放在map映射中:Collection<Station> lists = this.stationService.findAllStation();
    ActionContext.getContext().put("list", list);获取的时候<s:iterator value="list" id="li" status="st">
         <s:textfield value="%{#li.getT_email()}">
    </s:textfield></s:iterator>
       放在值栈中:Collection<Station> lists = this.stationService.findAllStation();
    ActionContext.getContext().getValueStack().getRoot().push(list);获取的时候<s:iterator value="top" id="li" status="st">
         <s:textfield value="%{#li.getT_email()}">
    </s:textfield></s:iterator>
    你那种获取方式也没问题,就是有点不规范,应该是action存放值的时候出现了问题
      

  4.   

    我想知道我这种想法是不是对的,就是先执行action,得到数据显示在jsp页面
      

  5.   

    我想知道我这种想法是不是对的,就是先执行action,得到数据显示在jsp页面这个应该不能解决我说的问题吧
      

  6.   

    我想知道我这种想法是不是对的,就是先执行action,得到数据显示在jsp页面这个应该不能解决我说的问题吧想法是对的,通过先执行action,通过action调用接口获取数据,再将数据显示在jsp中
      

  7.   

    先debug 看下   list 是否在堆栈中
      

  8.   

    最好贴一下获取数据后到action跳转到jsp页面之间的代码,是这部分代码出了问题
      

  9.   

    我想知道我这种想法是不是对的,就是先执行action,得到数据显示在jsp页面这个应该不能解决我说的问题吧想法是对的,通过先执行action,通过action调用接口获取数据,再将数据显示在jsp中以前没这样写过,你看看上面我的那段代码是少写了,还是写错了
      

  10.   

    action中方法:public String selInfoAll(){
    list=tud.selInfoAll();
    System.out.println(list.size()+"------");
    System.out.println(list.get(0).getT_email());
    this.setList(list);
    return SUCCESS;
    }
    struts.xml:<action name="selInfoAll" class="selInfoAllAction" method="selInfoAll">

    </action>
    页面的代码在最上面
      

  11.   

    没有问题,你在action中返回到jsp的之前添加上ActionContext.getContext().put("list", lists);也不行吗
      

  12.   

    action中方法:public String selInfoAll(){
    list=tud.selInfoAll();
    System.out.println(list.size()+"------");
    System.out.println(list.get(0).getT_email());
    this.setList(list);
    return SUCCESS;
    }
    struts.xml:<action name="selInfoAll" class="selInfoAllAction" method="selInfoAll">

    </action>
    页面的代码在最上面试试public String selInfoAll(){
    list=tud.selInfoAll();
    System.out.println(list.size()+"------");
    System.out.println(list.get(0).getT_email());
    ActionContext.getContext().put("list", list);
    return SUCCESS;
    }
      

  13.   

    好像还是不行,我struts配置文件有没有问题
      

  14.   

    好像还是不行,我struts配置文件有没有问题少了<result name="success">xx.jsp</result>
      

  15.   

    好像还是不行,我struts配置文件有没有问题少了<result name="success">xx.jsp</result>这个我刚开始写了的,页面加载时执行这个action,在返回这个页面,死循环了
      

  16.   

    <body>
      <s:action name="selInfoAll" namespace="/" executeResult="true"></s:action>
      <div id="div1">
    jsp页面上的这句有没有少内容
      

  17.   


    <div>
              <s:iterator value="%{list}" id="li" status="st">
                  <s:textfield value="%{#li.getT_email()}"></s:textfield>
              </s:iterator>
          </div>这个代码段value="%{list}"虽然可以这么写,但是没有意义,直接value="list" 下面既然是textfield不是property为什么把值放在value里面,本来用#就是取堆栈的值,后面还要加get方法做什么,如果你后台list里面的pojo里面有get方法,直接<s:textfield name="t_email"></s:textfield> 改了之后就行了
      

  18.   

    为什么死循环我刚测了下,应该是你先通过一个action跳转到了一个jsp,jsp中又通过<s:action进行跳转获取数据,然后又回到jsp中这样就不会有数据了,最好把代码都贴出来,
      

  19.   

    你一定要这个页面初始化的时候加载吗?你可以跳到这个页面的时候不跳jsp直接跳action啊~
      

  20.   

    struts2<action name="selInfoAll" class="selInfoAllAction" method="selInfoAll">
    <result>index.jsp</result>
    </action>
    actionpackage my.sky.fly.action;import java.util.List;
    import my.sky.fly.idao.ITutorDao;
    import my.sky.fly.pojo.Tutor_info;import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;public class SelInfoAllAction extends ActionSupport{

    private ITutorDao tud;
    private Tutor_info ti;
    List<Tutor_info> list;


    public ITutorDao getTud() {
    return tud;
    }
    public void setTud(ITutorDao tud) {
    this.tud = tud;
    }
    public Tutor_info getTi() {
    return ti;
    }
    public void setTi(Tutor_info ti) {
    this.ti = ti;
    }
    public List<Tutor_info> getList() {
    return list;
    }
    public void setList(List<Tutor_info> list) {
    this.list = list;
    }
    public String selInfoAll(){
            list=tud.selInfoAll();
            System.out.println(list.size()+"------");
            System.out.println(list.get(0).getT_email());
            ActionContext.getContext().put("list", list);
            return SUCCESS;
        }}<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@ taglib uri="/struts-tags" prefix="s" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
       <link href="css/indexcss.css" type="text/css" rel="stylesheet"/>  </head>
      
      <body>
      <s:action name="selInfoAll" namespace="/" executeResult="true"></s:action>
      <div id="div1">
      
       <%java.text.SimpleDateFormat formatter= new java.text.SimpleDateFormat("yyyy年MM月dd日 ");
       java.util.Date currentTime_1 = new java.util.Date();
        %>
        <%=formatter.format(currentTime_1) %>
      
      
       <div>
       <s:iterator value="%{list}" id="li" status="st">
       {#li.t_email}
       <s:textfield value="%{#li.getT_email()}"></s:textfield>
       </s:iterator>
       </div>
      </div>
      </body>
    </html>
    其它的spring配置文件应该没什么问题的
      

  21.   

    我的这个是首页,没地方跳过来那你可以用ajax异步加载这部分数据吗?
      

  22.   

    struts2<action name="selInfoAll" class="selInfoAllAction" method="selInfoAll">
    <result>index.jsp</result>
    </action>
    actionpackage my.sky.fly.action;import java.util.List;
    import my.sky.fly.idao.ITutorDao;
    import my.sky.fly.pojo.Tutor_info;import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;public class SelInfoAllAction extends ActionSupport{

    private ITutorDao tud;
    private Tutor_info ti;
    List<Tutor_info> list;


    public ITutorDao getTud() {
    return tud;
    }
    public void setTud(ITutorDao tud) {
    this.tud = tud;
    }
    public Tutor_info getTi() {
    return ti;
    }
    public void setTi(Tutor_info ti) {
    this.ti = ti;
    }
    public List<Tutor_info> getList() {
    return list;
    }
    public void setList(List<Tutor_info> list) {
    this.list = list;
    }
    public String selInfoAll(){
            list=tud.selInfoAll();
            System.out.println(list.size()+"------");
            System.out.println(list.get(0).getT_email());
            ActionContext.getContext().put("list", list);
            return SUCCESS;
        }}<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@ taglib uri="/struts-tags" prefix="s" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
       <link href="css/indexcss.css" type="text/css" rel="stylesheet"/>  </head>
      
      <body>
      <s:action name="selInfoAll" namespace="/" executeResult="true"></s:action>
      <div id="div1">
      
       <%java.text.SimpleDateFormat formatter= new java.text.SimpleDateFormat("yyyy年MM月dd日 ");
       java.util.Date currentTime_1 = new java.util.Date();
        %>
        <%=formatter.format(currentTime_1) %>
      
      
       <div>
       <s:iterator value="%{list}" id="li" status="st">
       {#li.t_email}
       <s:textfield value="%{#li.getT_email()}"></s:textfield>
       </s:iterator>
       </div>
      </div>
      </body>
    </html>
    其它的spring配置文件应该没什么问题的
    把jsp的第26行去掉,地址栏直接访问http://localhost:端口/项目名称/xx.jsp试试能不能出来,记得加上<result>xx.jsp</result>
      

  23.   

    我的这个是首页,没地方跳过来那你可以用ajax异步加载这部分数据吗?如果这种方法没效果,那就用ajax了
      

  24.   

    struts2<action name="selInfoAll" class="selInfoAllAction" method="selInfoAll">
    <result>index.jsp</result>
    </action>
    actionpackage my.sky.fly.action;import java.util.List;
    import my.sky.fly.idao.ITutorDao;
    import my.sky.fly.pojo.Tutor_info;import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;public class SelInfoAllAction extends ActionSupport{

    private ITutorDao tud;
    private Tutor_info ti;
    List<Tutor_info> list;


    public ITutorDao getTud() {
    return tud;
    }
    public void setTud(ITutorDao tud) {
    this.tud = tud;
    }
    public Tutor_info getTi() {
    return ti;
    }
    public void setTi(Tutor_info ti) {
    this.ti = ti;
    }
    public List<Tutor_info> getList() {
    return list;
    }
    public void setList(List<Tutor_info> list) {
    this.list = list;
    }
    public String selInfoAll(){
            list=tud.selInfoAll();
            System.out.println(list.size()+"------");
            System.out.println(list.get(0).getT_email());
            ActionContext.getContext().put("list", list);
            return SUCCESS;
        }}<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@ taglib uri="/struts-tags" prefix="s" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
       <link href="css/indexcss.css" type="text/css" rel="stylesheet"/>  </head>
      
      <body>
      <s:action name="selInfoAll" namespace="/" executeResult="true"></s:action>
      <div id="div1">
      
       <%java.text.SimpleDateFormat formatter= new java.text.SimpleDateFormat("yyyy年MM月dd日 ");
       java.util.Date currentTime_1 = new java.util.Date();
        %>
        <%=formatter.format(currentTime_1) %>
      
      
       <div>
       <s:iterator value="%{list}" id="li" status="st">
       {#li.t_email}
       <s:textfield value="%{#li.getT_email()}"></s:textfield>
       </s:iterator>
       </div>
      </div>
      </body>
    </html>
    其它的spring配置文件应该没什么问题的
    把jsp的第26行去掉,地址栏直接访问http://localhost:端口/项目名称/xx.jsp试试能不能出来,记得加上<result>xx.jsp</result>还是死循环了,如果result里是index.jsp,当前页面也是index.jsp。这样应该是死循环吧。如果这样没效果,估计要换方法了
      

  25.   

    li.getT_email()  Java页面显示的是对象的属性,你get是错误的。
      

  26.   

    楼主这样改试试
    <s:iterator value="%{list}" var="li" status="st">
      

  27.   

    先调试看看list中是否取到了值!
      

  28.   

    <table>
    <s:iterator var="pro" value="listProject">
    <tr>
    <td height="20" bgcolor="#FFFFFF" align="center">
    ${pro.project_year }</td>
    <tr>
    </s:iterator>
    </table>
      

  29.   

    直接访问action然后跳转回jsp不行吗
      

  30.   

     <s:textfield value="%{#li.getT_email()}"></s:textfield>这个括号是干嘛用的,有这样的吗
    去掉括号试试看
      

  31.   

    <s:textfield value="%{#li.getT_email()}"></s:textfield>
      

  32.   

    那你就用java代码取值一下,看看页面里到底有没有取到值,request.getAttribute("userName");应该是你的ognl表达式的问题
      

  33.   

    如果真的确信表达式没问题,是不是实体类中的get,set方法忘记了呢?自己找吧,有些时候就是一些小毛病,慢慢排查吧
      

  34.   

    <div>
              <s:iterator value="list" id="li" status="st">
                  <s:textfield value="${li.t_email}"></s:textfield>
              </s:iterator>
          </div>
    这样写不行吗?
      

  35.   

    我的这个是首页,没地方跳过来那你可以用ajax异步加载这部分数据吗?谢谢!
      

  36.   

    好像还是不行,我struts配置文件有没有问题少了<result name="success">xx.jsp</result>谢谢!