我用struts做了一个客户资料管理系统,主要实现增\删\修\查.
当我增加一条记录的时候,点击查看可以正常的显示----
如果我再增加一条记录,点击查看的时候就不能显示这条记录,但是已经将数据插入到了数据库中.然后重新打开IE,再查看就可以看到第二次插入的数据.
我对这个问题很是困惑,希望得到高人相助啊!!!这个问题怎么解决呢?

解决方案 »

  1.   

    如果大家谁那有Struts解析XML文件的源码,在给我发一下吧
    [email protected]
      

  2.   

    可能是由于的你的页面没有refresh造成的
      

  3.   

    public void insert(Nation nation) throws SQLException {
        String sql;
        sql = "INSERT INTO nation (nationcode, nationname) VALUES (?, ?)";
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try
        {
          conn = ds.getConnection();
          pstmt = conn.prepareStatement(sql);
          pstmt.setString(1, nation.getNationcode());
          pstmt.setString(2, nation.getNationname());
          pstmt.executeUpdate();
          pstmt.close();
          conn.commit();
        }
        catch (SQLException sqle) {
          close(rs);
          close(pstmt);
          rollback(conn);
          sqle.printStackTrace();
          throw sqle;
        }
        finally
        {
         close(conn);
        }
      }
    public void insert(Nation nation) throws SQLException {
        String sql;
        sql = "INSERT INTO nation (nationcode, nationname) VALUES (?, ?)";
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try
        {
          conn = ds.getConnection();
          pstmt = conn.prepareStatement(sql);
          pstmt.setString(1, nation.getNationcode());
          pstmt.setString(2, nation.getNationname());
          pstmt.executeUpdate();
          pstmt.close();
          conn.commit();
        }
        catch (SQLException sqle) {
          close(rs);
          close(pstmt);
          rollback(conn);
          sqle.printStackTrace();
          throw sqle;
        }
        finally
        {
         close(conn);
        }
      }
    上面的是我工程中DAO层其中的一个NationDao 中的insert方法,大家帮我看一下吧
      

  4.   

    NationAction中的performSave()方法
    private ActionForward performSave(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response)
      {
        NationForm form = (NationForm) actionForm;    try
        {
          DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);      NationDAO nationDAO = new NationDAO(ds);      Nation nation = new Nation();
          org.apache.commons.beanutils.BeanUtils.populate(nation, org.apache.commons.beanutils.BeanUtils.describe(form));
          int strutsAction = form.getStrutsAction();
          if (strutsAction == NationForm.ADD)//判段entry.jsp中获得的参数是否与NationForm中定义的ADD相等
          {
            String nationcode = nation.getNationcode();
            if (nationDAO.retrieve(nationcode) == null)//用nationDAO中的retrieve在数据库中遍历从模型中取出的数据,如果不存在,就插入
            {
              nationDAO.insert(nation);
            }
            else//如果nationcode不为空,表示数据库中已经存在记录,则调用sqlDuplicateError方法,显示已经存在错误信息
            {
              sqlDuplicateError(request, "Nation");
              return mapping.findForward("failure");
            }
          }
          else if (strutsAction == NationForm.EDIT)//判段entry.jsp中获得的参数是否与NationForm中定义的ADD相等
          {
            nationDAO.update(nation);
          }
        }
        catch (Exception e)
        {
          generalError(request, e);
          return mapping.findForward("failure");
        }
        return mapping.findForward("success");
      }