gpt4 book ai didi

java - 在 Spring MVC 中映射/(root URL)

转载 作者:搜寻专家 更新时间:2023-10-31 20:22:03 25 4
gpt4 key购买 nike

这是我认为应该非常容易的事情,但到目前为止我还没有能够让它发挥作用。

我想做的是将我的根路径映射到 Spring MVC Controller 。对于普通的 Servlet,我只需在我的 web.xml 中为“/”添加一个映射,它会很好地识别它.但是对于 Spring MVC,就不是那么多了。

我尝试了很多组合,但似乎都不起作用。我认为下面的应该可行。

web.xml 中:

<servlet-mapping>
<servlet-name>myDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

在我的 contextConfigLocation 文件中:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="alwaysUseFullPath" value="true"/>
<property name="mappings">
<util:map>
<entry key="/" value-ref="rootController"/>
</util:map>
</property>
</bean>

<bean id="rootController" class="my.package.RootController">

那么显然,还有 Controller 本身的情况。我不知道如何将方法映射到实际的根路径。我的尝试是这样的:

public class RootController extends MultiActionController {

@RequestMapping("/")
public ModelAndView display(HttpServletRequest request, HttpServletResponse response) throws Exception {

final Map<String, Object> model = new HashMap<String, Object>();
model.put("someVariable", "Hello, MVC world.");
return new ModelAndView("rootPage", model);
}
}

假设我的应用程序在 http://localhost:8080/app/ 上运行,我想要那个确切的 URL 来执行方法 display。我不想在 /app/ 之后键入任何内容。事实上,/app/ 之后的一些东西被映射到其他 Controller ,并且一切正常(并且它们必须继续工作)。

我在这里错过了什么?为什么这不简单?如果我使用相同的 url-pattern 映射到一个普通的 Servlet 实例,它工作正常并且我到达了 doGet 方法,但是使用 Spring MVC 我似乎缺少一些特殊的黑魔法来让它工作。

最佳答案

您可以在 web.xml 文件中声明一个欢迎页面,而不是映射到 /:

<welcome-file-list>
<welcome-file>welcome.htm</welcome-file>
</welcome-file-list>

因此您的 / 路径将被处理为 /welcome.htm 然后如果您的 Controller 正确映射到 /welcome.htm 它将处理 / 就好像它是一个 /welcome.htm 请求一样,而不更改其他配置。

关于java - 在 Spring MVC 中映射/(root URL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12202302/

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