有人会回答一些关于 Spring 和请求映射的问题吗?

Would someone answer some questions about Spring and Request Mapping?

刚开始学习Spring,一头雾水

我刚刚在 STS 创建了一个新的 'Spring Legacy Project'。 HomeController 和 home.jsp 在那里。

当我 运行 它在服务器上时,它首先通过 HomeController 到达 home.jsp。

@RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {

        return "home";
    }
  1. 是什么让我的项目一开始就走HomeController?我应该查看任何 xml 文件吗?

  2. @RequestMapping中的value="/"是什么意思?

  3. 在home.jsp处,我做了一个按钮去'result.jsp'。从 'result.jsp' 我想回到 home.jsp。但它不起作用。我该怎么办?

<input type="button" value="뒤로 " onclick="javascript:location.href='/views/home.jsp'">

为什么这个按钮不起作用?这两个 JSP 文件在同一个地方。

  1. 您的应用已部署到某个应用服务器,例如 tomcat。请求 / 由应用服务器处理到具有适当上下文根的 .war,例如到你的应用程序。您的应用程序使用 Spring MVC,因此您的 .war 文件中的 Spring 的 RequestMappingHandlerMapping bean 最初处理请求并找到您的方法来处理此请求。它通过将请求中的路径与用@RequestMapping 注释的每个方法的值进行比较来实现。

  2. 您的 home() 方法的注释 @RequestMapping(value="/") 意味着请求 / 将由您的 'home()' 方法处理.

  3. 来自您的 JSP 的任何请求都将返回到 Spring MVC,该 MVC 将尝试将其映射到适当的控制器方法,即映射到 @RequestMapping 注释的方法具有相对于上下文根的适当路径。因此,如果您的 result.jsp 仅链接到“/”,它应该将您带到 home() 方法,然后转到 home.jsp.