首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

页面只显示列名,不显示数据库里的数据,该怎么解决

2014-01-15 
页面只显示列名,不显示数据库里的数据从书上copy了个struts2和hibernate的例子,数据库能够连接,但是只显示

页面只显示列名,不显示数据库里的数据
从书上copy了个struts2和hibernate的例子,数据库能够连接,但是只显示各字段名称,没法显示库里的数据,iterator没有使用到。是不是哪块代码写错了。数据库的表设计得很简单,三个字段id name price,求大神帮忙。
 
showAllInfo.jsp代码
 
<%@ page language="java" contentType="text/html; charset=utf-8"
     pageEncoding="utf-8"%>
 <%@ taglib prefix="s" uri="/struts-tags" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>产品列表</title>
 </head>
 <body bgcolor="#CCDDEE">
 <center>
 <h2>产品列表</h2>
 
<table border="2" bgcolor="AACCBBDD">
 <tr>
 <td>产品</td>
 <td>产品名称</td>
 <td>产品价格</td>
 <td>是否删除</td>
 <td>是否更新</td>
 </tr>
 
<s:iterator value="#request.all" id="product">
 <tr>
 <td><s:property value="#product.id"/></td>
 <td><s:property value="#product.name"/></td>
 <td><s:property value="#product.price"/></td>
 <td><a href="delete.action?id=<s:property value='#product.id'/>">删除</a></td>
 <td><a href="update.jsp?id=<s:property value='#product.id'/>">更新</a></td>
 </tr>
 </s:iterator>
 </table>
 
<a href="add.jsp">添加产品</a>
 
</center>
 </body>
 </html>
 
showAllAction.java代码
 
//显示所有信息
 package com.javaweb.action;
 import java.util.List;
 import net.hncu.factory.ServiceFactory;
 import org.apache.struts2.ServletActionContext;
 import com.javaweb.service.*;
 import com.opensymphony.xwork2.ActionSupport;
 
public class ShowAllInfoAction extends ActionSupport{
 
 public String execute()throws Exception{
   
   ProductService ps=ServiceFactory.getServiceInstance();
   List all=ps.queryAllProduct();
   ServletActionContext.getRequest().setAttribute("all", all);
      return SUCCESS;
  }
 }
 

struts.xml配置文件
 
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd">
 <struts>
  
  <package name="struts2" extends="struts-default" namespace="/" abstract="true">
   
   <!--定义showAll的Action-->
   <action name="showAllInfo" class="com.javaweb.action.ShowAllInfoAction">
   <result name="SUCCESS">/showAll.action</result>
   <result name="input">/add.jsp</result>
   <result name="error">add.jsp</result>
   </action>
    
   <!--定义add的Action-->
   <action name="add" class="com.javaweb.action.AddAction">
   <!--定义处理结果与视图资源的关系-->
    <result name="SUCCESS" type="redirect">/success.jsp</result>
   
   </action>
   
   <!--定义delete的Action-->
   <action name="delete" class="com.javaweb.action.DeleteAction">
   <!--定义处理结果与视图资源的关系-->
    <result name="SUCCESS" type="redirect">/showAll.action</result> 
   </action>
   
   <!--定义update的Action-->
   <action name="update" class="com.javaweb.action.UpdateAction">
   <!--定义处理结果与视图资源的关系-->
    <result name="SUCCESS" type="redirect">/showAll.action</result> 
   </action>
   
   
   </package>
 </struts>


[解决办法]
你用的什么IDE? 可以在showAllAction.java里打断点吗?就打在List all=ps.queryAllProduct()。
然后debug模式再跑一遍,watch对象all。

[解决办法]
你structs.xml配置的根据字符串返回资源是有错误的,当你根据success跳到另外一个Action不指定type时,默认是redirectAction,你返回的数据就没有了,你直接指定跳到/showAllInfo.jsp页面应该可以拿到数据。为什么又要跳转到一个Action了??你中间又没有别的业务逻辑处理,直接返回视图资源

热点排行