<action path="/htlDai" type="com.liu.struts.action.HtlDaiAction">
       <forward name="success" path="/hotel/htlDai.jsp" />
    </action>这是列出待审核订单的配置文件中的代码。
以下是HtlDai.java中的关键代码:
   Hotel hotel=new Hotel();
   Booking booking=new Booking();
   if(session.getAttribute("hotel")!=null)//用户刚刚添加的酒店
   {
  hotel=(Hotel)session.getAttribute("hotel");//获取用户的hotel
   }
   if(session.getAttribute("oldHotel")!=null)//用户原来的酒店
   {
   hotel=(Hotel)session.getAttribute("oldHotel");//获取用户的hotel
   }
    Set bookings= hotel.getBookings();
    List<Booking> dais = new ArrayList();
    Iterator it=bookings.iterator();
    while(it.hasNext()){
     booking=(Booking)it.next();
     if(booking.getBookingState().equals("待酒店方审核")){
     dais.add(booking);
     }
    
    }
                    Page<Booking> page = new Page<Booking>(curpage,3,dais.size());
    page.setEntity(dais);
                    request.setAttribute("page", page);
    return mapping.findForward("success");
页面上的代码就不说了,没多大关系,就是取出page中的Entity中每一个待审核订单的信息。
然后有一个<a href="passSH.do?bookingID=<%=booking.getId()%>">通过</a>的超链接,struts配置文件如下: <action path="/passSH"     type="com.liu.struts.action.PassSHAction">
      <set-property property="cancellable" value="false" />
       <forward name="success" path="/htlDai.do" />
    </action>。
PassSH.java中代码如下:
 int bookingID=Integer.parseInt(request.getParameter("bookingID"));//取出传来的订单id
 BookingDAO bookingdao=new BookingDAO();
 Booking booking=bookingdao.findById(bookingID);
 booking.setBookingState("未入住");//修改订单的状态
 bookingdao.save(booking);//保存订单
 return mapping.findForward("success");
问题来了:我点击“通过”超链接时,数据库中该订单的状态改变了,但是在待审核订单的页面仍然显示该订单。理论上说应该不再显示该订单的。更神经的是,如果我重启一下TomCat,再重新发布一下页面就刷新了。但是更多时候是不刷新的啊。郁闷死了,快毕业答辩了系统还没做好。求大侠指教

解决方案 »

  1.   

    说一下它神经的规律,比如说我这一次重启Tomcat后它正常了,然后退出系统。再重启一下Tomcat,它就不行了,页面不刷新,通过审核的订单还是显示在“待审核订单”的页面。
      

  2.   

      1.你清除一下游览器的缓存
      2.你DG跟一下看后台有没有值,调用到查询方法有没有值,
      3.你不是把数据放在dais 集合里面吗? 你操作(插入、删除等)后,把对象添加到这个集合里面,次集合最好是全局的【此方法应该可行,不过一般情况下我是很少用】。
      4.页面你是用什么方法提交的情况太多了,我没看到也不好说,你只有自己DG跟一下