伙計們,我想我在這里做錯了什么。我的目的是將資料庫中的資訊獲取到一個 JSON 陣列中,該陣列稍后將在 JS 日歷中使用,以每天顯示一些事件。我面臨的問題是:當我第一次登錄應用程式并查看日歷時,一切都很好,我正確獲得了初始資訊陣列,我相信我已經添加了 11 個元素/事件。但是當我重新加載頁面時,在陣列的末尾,資料再次添加,從而使我重復(22 條記錄)。如果我再次重新加載,會有更多,等等。我做錯了什么?這是我的 DAO 代碼:
record = new JSONObject();
record.put("eventName", rs.getInt("id"));
record.put("calendar", rs.getString("tool"));
record.put("color", color);
record.put("eventTime", rs.getString("datestart").replace("T", " "));
//doing the replace because the time comes with a T in between the date and the time
array.add(record);
這都在執行查詢后的 while (rs.next()) 陳述句中。
我的 JSON 陣列最初看起來像這樣:
[{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":104},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":108},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":109},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":111},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":113}]
然后,它變成了這樣:
[{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":104},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":108},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":109},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":111},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":113},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":104},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":108},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":109},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":111},{"calendar":"Mercedes","color":"orange","eventTime":"2022-06-10 00:01","eventName":113}]
如您所見,這些專案從原始陣列的末尾開始重復。每次我重新加載頁面時,都會發生這種情況。有任何想法嗎?我應該使while回圈不同嗎?我應該以另一種方式將元素添加到陣列中嗎?
uj5u.com熱心網友回復:
我只需要銷毀或重新實體化陣列
<%=UserDAO.array = new JSONArray()%>
那解決了它。頁面完全加載后我仍然不需要資訊當然,陣列是公共靜態的,但這是我愿意承擔的風險。或者我可能只是創建另一個使陣列無效的方法并從 JSP 頁面呼叫它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504205.html
上一篇:Javaservlet請求僅適用于多個自動生成的html元素中的第一個
下一篇:無法在struts中找到前進
