gpt4 book ai didi

java - 如何使用重定向处理模板

转载 作者:行者123 更新时间:2023-11-29 05:57:02 25 4
gpt4 key购买 nike

我想解决以下问题,它是关于从数据库中删除实体:

  1. 用户为某个实体选择删除
  2. 已从数据库中删除并从列表中消失
  3. 撤消框架出现在页面内(如 Twitter Bootstrap alert messages ),用户可以在其中选择撤消删除。

我不知道如何实现这一点,因为目前我是这样解决的:

  • 删除 按钮链接到 URL:delete/entity_id
  • 我在删除实体的请求处理程序中为此 URL 编写了一个 if-case
  • 删除完成后,我发送一个 response.sendRedirect(/list) 以便显示更新后的列表

这样我就无法通过重定向来发送额外的数据。通常我会通过模板处理它们来发送额外的数据,但是使用 redirect 这是不可能的。

这种情况如何解决?

最佳答案

我的 web 应用程序中很少有这样的场景,这是我如何解决的

我有一个名为消息队列的类,如下所示

public class MessageQueue {

public static Hashtable<String, Object> messages = new Hashtable<String, Object>();

public static void putMessage(String key, Object obj)
{
messages.put(key, obj);
}

public static Object getMessage(String key)
{
if(key == null)
return null;

Object obj = messages.get(key);

if(obj == null)
return null;

messages.remove(key);

return obj;
}

}

现在这个类留在内存中。在重定向之前,我创建了一些重定向后需要的对象。创建一个随机的 Guid 作为字符串,然后将此对象存储在消息队列中

然后我将此 Guid 添加为 URL 的参数

String justDeletedId = "someId";字符串 guid = (new Guid()).toString();MessageQueue.put(guid,justDeletedId);sendRedirect("\list\?msgid="+ guid);

现在在重定向之后你可以检查 messageID 并从消息队列中删除对象并做任何你想做的事情

我选择允许使用这个对象一次...以避免内存泄漏

在当前版本中...我还实现了 Last Access Eviction 策略,该策略使用 quartz 作业定期清理此消息队列

关于java - 如何使用重定向处理模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11672578/

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