gpt4 book ai didi

java - 将 Controller 映射到 Spring MVC 中的绝对路径

转载 作者:行者123 更新时间:2023-12-01 23:08:32 24 4
gpt4 key购买 nike

我有一个简单的 Web 应用程序,其中的搜索框在所有 JSP 页面中都可见。

我的 Controller 如下所示:

@RequestMapping(value = "/search", method = RequestMethod.GET)
public String search(Map<String, Object> map, HttpServletRequest request) {
/*...*/
return "searchresult";
}

在我的 JSP 中我使用:<form action="search" method="GET">为了提出请求。因此,例如,如果我从 /myproject/index 发出请求这很完美,生成的 URL 是 /myproject/search 。但现在,如果我从另一个层面做同样的事情,例如/myproject/index/level2 ,生成的 URL 为 /myproject/index/search并且不起作用,因为它找不到具有该映射的 Controller 。

我想要做的是将 Controller 映射到绝对路径,因此,在第二种情况下,生成的 URL 将是 /myproject/search而不是/myproject/index/search/

在我的web.xml我有这个:

<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

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

最佳答案

使用EL

<form action="${pageContext.request.contextPath}/search" method="GET" />

EL 表达式将解析为应用程序的上下文路径。然后将完整路径附加到它。

或者,core标签库提供 url 标签。

<form action="<c:url value="/search" />" method="GET" />

这或多或少做了同样的事情。

Spring 还提供了自己的 url 标记,您可以查看它。

关于java - 将 Controller 映射到 Spring MVC 中的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22407941/

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