[英]How to use @RequestMapping headers?
我正在學習springmvc。 當我使用@RequestMapping(value="/helloWorld", headers = "content-type=text/*")
並連接到http://localhost:8080/SpringMVC_10100/helloWorld
,控制台中會輸出以下內容:
WARN org.springframework.web.servlet.PageNotFound - 沒有為servlet請求找到匹配的處理程序方法:path
'/helloWorld'
,方法'GET'
,參數map[[empty]]
我的代碼是:
@Controller
public class HelloWordController {
private Logger logger = LoggerFactory.getLogger(HelloWordController.class);
@RequestMapping(value="/helloWorld", headers = "content-type=text/*")
public ModelAndView helloWorld() {
logger.debug("jin ru le");
logger.info("The helloWorld() method is use");
ModelAndView view = new ModelAndView();
view.setViewName("/helloworld");
return view;
}
}
web.xml是
<servlet>
<description>This is Spring MVC DispatcherServlet</description>
<servlet-name>SpringMVC DispatchServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<description>SpringContext</description>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC DispatchServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
為什么?
最有可能的情況是/ helloworld不在為調度程序servlet配置的路徑中
例如,如果我有一個像這樣配置的servlet:
<servlet>
<servlet-name>BMA</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>BMA</servlet-name>
<url-pattern>/bma/*</url-pattern>
</servlet-mapping>
我有一個像這樣配置的控制器:
@RequestMapping(value = "/planner/plan/{planId}/delete", method = RequestMethod.GET)
public ModelAndView deletePlanConfirm(HttpServletRequest request,
@PathVariable("planId") Long planId) {}
那么browsder中的請求將是:
http://localhost:8080/bma/planner/plan/1223/delete
編輯: 此外,如果您的處理程序中的內容類型標題縮小,請確保在您的請求中發送內容類型的haeder。
在下面的注釋中刪除標題:
@RequestMapping(value="/helloWorld", headers = "content-type=text/*")
至:
@RequestMapping(value="/helloWorld", method = RequestMethod.GET)
或者:
@RequestMapping(value="/helloWorld")
應該讓它發揮作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.