【问题标题】:Spring MVC Controller Changing URL or Issuing incorrect URLSpring MVC 控制器更改 URL 或发出不正确的 URL
【发布时间】:2013-03-04 16:23:32
【问题描述】:

我有一个 SpringMVC 应用程序,我不确定它是否正常工作。我有一个注册表单,当我单击查询按钮时,URL 为 http://localhost:8080/myapp/registration.htm,应用程序被发布到控制器,用户被发布到第二页 getList.htm,它显示结果列表,但是当发布到第二页时网址仍为http://localhost:8080/myapp/registration.htm

当发布第二页时,假设用户被带回第一页http://localhost:8080/myapp/registration.htm 以显示从 getList.htm 中选择的记录(这会显示多条记录)。

当用户被回发到http://localhost:8080/myapp/registration.htm 时,url 显示为http://localhost:8080/myapp/getList/1985121244.htm,其中 1985121244 是记录号。一旦用户被发布回第一页,url是否应该显示http://localhost:8080/myapp/registration.htm

此外,如果用户在从 getList.htm POST 返回后尝试 POST 第一页,您会得到 HTTP 400,并且 url 显示为 http://localhost:8080/myapp/getList/registration.htm。第二页附加到 url,这不是控制器中的适当映射。有人可以解释这里发生了什么以及它是如何修复的。

已编辑

此外,当我第一次进入应用程序时,主菜单是http://localhost:8080/myapp/hello.htm,当我单击a href 时,我被带到注册页面,但是页面显示但网址没有改变。当从 hello.htm 页面单击 href 标记时,控制器会请求获取注册页面并使用 return new ModelAndView("registration"); 返回它我看到一些网站说我应该使用 return new ModelAndView("redirect:/registration"); 但是当使用它时我得到404 Not Found - http://localhost:8080/myapp/registration"。在我发布代码之前我可以查看的任何想法我的代码很多

【问题讨论】:

  • 发布你的 spring 代码。
  • 代码的哪些部分你需要我发布它的很多代码你想要控制器和jsp代码我必须做一个总结

标签: java http url spring-mvc url-rewriting


【解决方案1】:

对我来说,您似乎只是在登录后返回视图名称。当然,这不会改变您的网址。不要返回视图名称,而是使用“redirect:/getList.htm”指向您需要的 url。

然后处理 getList.htm 的控制器检查用户是否登录并返回正确的视图名称。

【讨论】:

  • 当我使用“redirect:/getList.htm”时,我得到 HTTP 状态 404 localhost:8080/myapp/getList.htm"
  • 然后你应该定义控制器的方法来处理getList.htm。想象一下登录用户移动到另一个页面然后尝试打开getList。应该怎么办?
  • 我已经有一个 url 映射,在控制器中为 getList.htm 定义了一个 GET 方法,出现同样的问题
  • 如果你不介意看这个链接,它有代码和更详细的解释我面临的问题stackoverflow.com/questions/15456724/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-12
  • 2020-01-16
  • 2016-07-13
  • 2013-07-22
  • 2023-03-19
  • 2012-11-09
  • 1970-01-01
相关资源
最近更新 更多