gpt4 book ai didi

java - 如何管理 Spring MVC 上的错误 URL?

转载 作者:行者123 更新时间:2023-11-30 05:06:08 27 4
gpt4 key购买 nike

我有一个带有 Spring MVC 3.0.4.RELEASE 的 Web 应用程序。

我有以下情况:

1) 我通过 GET 进入搜索网页,路径为:search.html
2)我单击搜索并对路径执行 POST:searchResults.hmtl
3)当我单击搜索结果时,我会向 searchResults/enterResult.html 执行 POST
4) 假设 Controller 引发异常...
5) 我需要返回到之前搜索的 searchResults.html 页面。

我无法使用forward,因为它维护路径searchResults/enterResults.html,因此如果我单击搜索结果,它会构建以下不存在的路径:searchResults/searchResults/enterResults.html

你知道如何解决这个问题吗?

最佳答案

如果发生错误,为什么不执行redirect:searchResults.html而不是转发它呢?如果您想将错误消息发回并显示在该页面中,可以将它们添加为参数,如下所示:redirect:searchResults.html?error_message=yada

顺便说一句,如果您在构建搜索结果表单操作时避免使用相对 URL,那么您首先就不应该遇到 searchResults/searchResults/enterResults.html 问题。看起来您确实是在 enterResults.html 而不是 /your-app/searchResults/enterResults.html 上进行 POST 如果您修复了此问题,则无需按照我上面提到的方法执行重定向。

我想说的是:

...而不是这样做...

<form action="enterResults.html" method="POST">
...
</form>

...这样做...

<form action="${pageContext.request.contextPath}/searchResults/enterResults.html" method="POST">
...
</form>

这样,转发的 URL 是否保留之前的 URL 并不重要。您将始终发布到正确的操作。

关于java - 如何管理 Spring MVC 上的错误 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032803/

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