Java web应用程序重定向到URL,这取决于请求来自哪里



我知道这个标题不是很好,但我不知道如何解释它,所以我将描述这个场景。

首先,我使用MVC设计。

存在两个资源UserTopic。用户信息可以在/users/{id}中找到,有一个选项可以浏览由该用户创建的主题,该主题可重定向到/users/{id}/topics。当用户删除了我想让他发送给/topics/{id}/delete的话题时,我认为这应该由我的TopicController来处理。

现在的问题:在我的TopicController,我如何重定向用户回到/users/{id}/topics ?通常,当浏览所有主题时,它返回/topics。基本上,如果请求来自用户主题列表,我需要在删除主题后将他返回到那里。

基本上我需要一个更优雅的

解决方案
if(requestURI.contains("/users") 
   return "redirect:/users/{id}/topics" 
else 
   return "redirect:/topics"

在映射到/topics/{id}/delete的TopicController处理程序中,你需要做任何你需要删除主题的事情,然后像这样:

    ...
    redirectAttrs.addAttribute("id", account.getId()); 
    return "redirect:/users/{id}/topics";
}

更新:

/users/{id} ->调用1处理程序返回用户信息
/users/{id}/topics ->调用1处理程序,返回一个用户主题
/topics/{id}/delete ->调用1处理程序,删除用户主题

如果用户删除了他/她的主题,那么你不应该总是重定向到/users/{id}/topics,因为那是他们选择删除主题时的位置吗?

如果用户在/topics上,那么他们不能删除主题对吗?

你曾经有一个用例指导用户从/topics/{id}/delete/topics吗?我不这么认为。

最新更新