为什么JSP在刷新时在客户端重复显示记录?

我的JSP页面在刷新时,在客户端显示的记录是重复的。我尝试了另一个项目,同样的流程,但工作正常。下面是页面的截图。图片

以下是我在welcome-file(控制器)中的代码。

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    List<Todo> todos = null;
    try {
        todos = todoDaoImpl.getTodos();
        request.setAttribute("todo_list", todos);
        request.getRequestDispatcher("views/list-todo.jsp").forward(request, response);
    } catch (Exception e) {
        logger.warning("Error in list todo");
    }
}

JSP代码

<table class="table table-striped">
  <caption>Your Todos are:</caption>
  <tr>
    <th id="desc">Description</th>
    <th id="category">Category</th>
    <th id="action">Action</th>
  </tr>

  <tbody>
    <c:forEach items="${todo_list}" var="todo">
      <tr>
        <td>${todo.todos}</td>
        <td>${todo.category}</td>
        <td><a href="${loadTodoLink}" class="btn btn-primary">Update</a>
          <a class="btn btn-danger" href="${deleteLink}" onclick="if(!(confirm('Do you want to delete this?'))) return false">Delete</a></td>
      </tr>
    </c:forEach>
  </tbody>
</table>

DAO代码

List<Todo> todos = new ArrayList<>();

@Override
public List < Todo > getTodos() throws Exception {
    String sql = "SELECT * from todo";

    try (Connection conn = dataSource.getConnection();
            PreparedStatement stmt = conn.prepareStatement(sql);
            ResultSet rs = stmt.executeQuery()) {
        while (rs.next()) {
            int id = rs.getInt("id");
            String todo = rs.getString("todo");
            String category = rs.getString("category");

            todos.add(new Todo(id, todo, category));
        }
        return todos;
    }
}

解决方案:

在你的DAO代码中,你有这个。todos.add(new Todo(id, todo, category));.

每次你点击 getTodos() 方法添加到列表中。

要么拥有 todos 列表是你的方法的一部分(相对于被声明为全局变量),否则,在 getTodos() 方法,然后再把它填满。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

我收到一个关于不兼容的返回类型的警告。

2022-5-12 16:00:22

解决方案

任务的算法

2022-5-12 16:00:24

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索