" > -6ren">
gpt4 book ai didi

java - 应用引擎/Java : delete items retrieved from checkboxes

转载 作者:行者123 更新时间:2023-12-01 12:43:37 25 4
gpt4 key购买 nike

这是我的问题:我有一个包含以下代码的 .jsp 文件:

form class="form" action="deleteServlet" method="post">      
<%
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("Notice").addSort("date", Query.SortDirection.DESCENDING);
PreparedQuery pq = datastore.prepare(query);
for (Entity notice : pq.asIterable()) {
String title = (String) notice.getProperty("title");
%>
<input type="checkbox" name="selected"
value=" <% KeyFactory.keyToString(notice.getKey()); %> " >
<%out.println(title);
} %>
<input type="submit" value="Delete!">
</form>

我对 AppEngine 数据存储区进行查询以获取项目列表。我需要用复选框显示每个项目,以便用户可以选择其中的一些项目并将其从数据存储中删除。逻辑是使用 Servlet 进行管理的,如下所示:

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
String[] noticesChecked = req.getParameterValues("selected");

for (int i=0; i<noticesChecked.length; i++) {
Key noticeKey = KeyFactory.stringToKey(noticesChecked[i]);
datastore.delete(noticeKey);
}

我使用 getParameterValues 获得了选定项目的数组。然后,我迭代它们并尝试从数据存储中删除它们。由于我无法将 Key 对象传递给 servlet,因此我使用 KeyFactory.keyToString 和 KeyFactory.stringToKey 转换为 String 并传递它。

我的问题是noticesChecked中的元素都是空字符串“”。我检查了一下,notice.getKey 给了我正确的 key 。 keyToString 和 stringToKey 似乎也运行良好。对数组大小的检查告诉我它不为空,但它与检查的项目正确相关。然而,该数组中的所有元素都是“”。

有人有类似问题吗?对这个问题有什么想法吗?错误在哪里?

提前致谢。

最佳答案

尝试替换这部分jsp代码:

<% KeyFactory.keyToString(notice.getKey()); %>

通过这个:

<%= KeyFactory.keyToString(notice.getKey()) %>

因为您想要插入表达式的值。

关于java - 应用引擎/Java : delete items retrieved from checkboxes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com