我的food类
public class Food implements java.io.Serializable { // Fields private Integer foodid;
private String etid;
private String fdname;
private Double fdprice;
private String kind; // Constructors /** default constructor */
public Food() {
} /** full constructor */
public Food(String etid, String fdname, Double fdprice, String kind) {
this.etid = etid;
this.fdname = fdname;
this.fdprice = fdprice;
this.kind = kind;
} // Property accessors public Integer getFoodid() {
return this.foodid;
} public void setFoodid(Integer foodid) {
this.foodid = foodid;
} public String getMarketid() {
return this.etid;
} public void setMarketid(String etid) {
this.etid = etid;
} public String getFdname() {
return this.fdname;
} public void setFdname(String fdname) {
this.fdname = fdname;
} public Double getFdprice() {
return this.fdprice;
} public void setFdprice(Double fdprice) {
this.fdprice = fdprice;
} public String getKind() {
return this.kind;
} public void setKind(String kind) {
this.kind = kind;
}}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
我的action
public class searchfirst extends ActionSupport{

private FoodDAO foodDAO = new FoodDAO();
private List<Food> searchfirstL = new ArrayList(); private List<Food> getSearchfirstL(){
return searchfirstL;
}

private void setSearchfirstL(List<Food> searchfirstL){
this.searchfirstL = searchfirstL;
}


public String execute()throws Exception{

this.setSearchfirstL(foodDAO.findAll());
System.out.println(searchfirstL.size());
System.out.println(((Food)(searchfirstL.get(0))).getFoodid());
//HttpServletRequest request = ServletActionContext.getRequest();
//request.setAttribute("searchfirstL",this.getSearchfirstL());
return "showfirstsearch";
}
}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
我的jsp
<s:iterator value="searchfirstL" status="status">
<tr>
<td height="25">
<div align="center">
<s:property value="foodid"/>
</div>
</td> 

<td height="25">
<div align="center">
<s:property value="etid"/>
</div>
</td> 

<td height="25">
<div align="center">
<s:property value="fdname"/>
</div>
</td>  
<td height="25">
<div align="center">
<s:property value="fdprice"/>
</div>
</td>
<td height="25">
<div align="center">
</div>
<br></td></tr> </s:iterator>

解决方案 »

  1.   

    恩啊,文件是有点多的,但是熟悉struts2的人来说这个是一个正常配置啊,帮忙看下错到底在哪里~~谢谢啦
      

  2.   

    我是看的懂啊   我一般在Action中得到一个List<Food> 然后存储到Session或reqeust中 在页面用迭代或者<c:foreach>问题是你在Action中的我看的不是很明白
      

  3.   

     我是楼主啊,那个是同学的号,她号有分,我的问题是我想把查询出来的结果List,用struts的<s:iterator>标签显示出来,可以用我上面的输出语句得出List里面是有值的,所以来请教各位大牛,为什么我的数据在jsp中就显示不出来呢,急 啊!!!
      

  4.   

    JSP页面:
    <s:property value="foodid"/>  改成  <s:property value="food.foodid"/>
    <s:property value="etid"/> 改成  <s:property value="food.etid"/>
    其它也一样这样改试试行不行
      

  5.   

    额  了解  
    <s:iterator id="search" value="#request.searchfirstL" status="status">
    <tr> 
    <td height="25">
    <div align="center">
    <s:property value="${search.foodid}"/>
    </div>
    </td>  <td height="25">
    <div align="center">
    <s:property value="${search.etid}"/>
    </div>
    </td>  <td height="25">
    <div align="center">
    <s:property value="${search.fdname}"/>
    </div>
    </td>   
    <td height="25">
    <div align="center">
    <s:property value="${search.fdprice}"/>
    </div>
    </td>
    <td height="25">
    <div align="center"> 
    </div>
    <br></td></tr> </s:iterator>貌似没有错啊  你用迭代的时候id很重要,因为每次迭代的时候Struts每一项都会存储到StackContext的范围中  你在试试 我下午有课  问题请留言 我想应该是没有问题的  我想有心提示  我一般用C标签 Struts2的标签都不是很稳定
      

  6.   

    参考:http://wl-ldy.iteye.com/admin/blogs/858121
      

  7.   

    回5楼:你的food.foodid中的food是什么呢?是<s:iterator中定义的id的值么?
      

  8.   

    回六楼:照你的改后出现错误,我记得好像是数据类型的问题,我的类型就是一个List,好像不能那样写
    ${}这个好像不能用严重: Servlet.service() for servlet jsp threw exception
    org.apache.jasper.JasperException: /searchfirst.jsp(236,6) According to TLD or attribute directive in tag file, attribute value does not accept any expressions
      

  9.   

    lz你的救星我来了。
    你是不是想点开一个页面的时候,就自动从数据拿出数据,然后填充到jsp页面?如果是的话,好办了。
    第一:设置你的访问路径,比如你的jsp页面名字是food.jsp。如果你访问这个页面用这个url:http://localhost:8080/工程名/food.jsp那么这样就错了。url应该是这样的:http://localhost:8080/工程名/namespace!searchfood.action这样就能访问searchfood这个action了。然后在struts.xml里面配置好。让这个action的返回结果到food.jsp。food.jsp可以使用这个action里头searchfirstL属性来填充了。
    还有什么不懂?
      

  10.   

    <s:iterator value="searchfirstL" status="status">  value错误
      

  11.   

    回12楼:
    我是有一个按钮做表单提交,提交的时候运行action,然会有searchfirstL的List,然后再从struts中跳转到searchfirst。jsp,这样来显示的。。应该也可以吧?
      

  12.   

    回18楼:
    目标:我想要一个页面在加载的时候同时查询数据库中的数据,然后显示出来
    遇到的问题:jsp显示不出来啊
      

  13.   

    那可以用system.out.println()语句调试错误,在怀疑有错的地方,输出一下,看错误在哪里。是在数据库查询错了?foodlist没有实例化成功?页面取foodlist错了??我一路也是这样调式过来的
      

  14.   

    用<c:foreach>迭代下试试。。
      

  15.   

    无语,按照你说的效果是:在打开这个页面的同时,执行这个action对吧;无语了,用<s:action>标签
      

  16.   

    System.out.println(((Food)(searchfirstL.get(0))).getFoodid());
    lz的这条语句在后台有打印出来foodid吗?如果没有就是数据库查询的问题。
      

  17.   

    <s:iterator value="searchfirstL" status="status">
    应该有个var属性吧<s:iterator value="searchfirstL" status="status" var="food">
            < tr> 
              <td height="25">
                  <div align="center">
                         <s:property value="#food.foodid"/>
                  </div>
              </td>  
    </s:iterator>最好先 <s:property value=“searchfirstL"/>看list是否有值,如果没有后台this.setSearchfirstL(foodDAO.findAll());
    改成searchfirstL = foodDAO.findAll();
      

  18.   

    我想问一下lz,你的项目中struts2的标签库是可用的吗?首先请lz检查一下struts.xml文件中
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <!--url-pattern默认为*.action,必须改为/*否则无法支持struts2标签--> <url-pattern>/*</url-pattern>
    </filter-mapping>
    如果lz的项目中struts标签是可用的,那么就是你页面上的<s:iterator>标签的问题了,lz可以给<s:iterator>标签指定一个Id属性值,先输出一个属性的值试一下
      

  19.   

    同意6楼的,但其实不用写那么多的
    显示直接这样写就可以了<s:property value="#search.etid"/>
    好像吧#search.省略也可以,试一下
      

  20.   

    饿。。刚刚网络问题
    我想说
    我的List里面是有东西的,我有输出语句的,请看action中,在MyEclipse后台控制中有结果输出
    我先试试各位的方法
      

  21.   

    回30楼:
    标签是可用的
    <s:iterator>id也加过了,还是不行
      

  22.   

    回28楼:
    var这个我改改看,有后台的,List里是有数据的
      

  23.   

    LZ就不能用code的形式发出来吗?.
    而且这是struts1还是2 啊..
      

  24.   

    回复37楼:
    我用的是Struts2
    回复35楼:
    那个var的方法还是不可以
      

  25.   

    lz贴你的QQ出来。私聊我详细看一下。
      

  26.   

    大家。。我发现可能是我的版本问题,我用的是MyEclipse8.5,tomcat6.0,Struts2,Hibernate3.3,创建的web项目是基于J2EE5.0的,我后来发现我的JSP页面不支持<%@ isELIgnored="false" %>,貌似是jsp版本的问题,但是都是MyEclipse自带的啊,怎么解决呢?