日期:2014-05-19  浏览次数:20789 次

使用struts2查询数据库页面重复显示
通过action调用dao方法查询后,跳转到显示页面
如果刷新一次或者重新输入查询action的地址,总会把从查到的数据追加到之前的显示结果之后
action配置:
<action name="gainall" class="com.hsm.action.GainAllAction"
method="gainAll">
<result name="success">gainall.jsp</result>
</action>

显示页面:
<c:forEach items="${requestScope.listAll}" var="phone" >
  <tr>
    <td>${phone.pBrand}</td>
    <td>${phone.pModel}</td>
    <td>${phone.inventory}</td>
    <td>${phone.price}</td>
    <td><div align="center"><a href="#">修改</a>|<a href="dropone.action?pModel=${phone.pModel}">删除</a></div></td>
  </tr></c:forEach>
struts 查询数据重复追加显示

------解决方案--------------------
你刷新一次就等于重新发送一笔请求,所以肯定会重新的再加载一次。
这是真正常的情况。
如果你不想刷新后再次加载的话,可以使用javaScript的方式,设置标记为实现只有第一次载入的时候才提交请求。并把这个标记位存到session中。系统退出的时候吧session中的标记位清空。
防止以后首次加载的时候不能加载的问题。
------解决方案--------------------
是怎么追加的,给个示例看看,单从给出的页面片段貌似看不出会追加

另外看看属性是怎么赋值的
phone.xxx
------解决方案--------------------
估计你的查询结果是用JS动态生成的,每次查询前没有将列表变量清空
------解决方案--------------------
看下 你Action中的代码是怎么写的。应该是你Action中listAll这个集合重复累加值的问题。
------解决方案--------------------


贴图看看,
------解决方案--------------------
因为你的listAll在Action中每次只会add,你应该在初始化时候给List<> listAll= new ArrayList<>()就好了,每次请求都是新的list