【问题标题】:Some doubts about request mapping in Spring MVCSpring MVC中请求映射的一些疑惑
【发布时间】:2015-06-21 06:42:48
【问题描述】:

我正在为 Spring MVC 学习,并且在学习材料上我有以下疑问:

假设 Web 应用程序上下文名称为 “rewardsonline”,则 /admin/* 的 servlet 映射,以及传入的 URL ""rewardsonline/admin/accounts/show" 使用的网址是什么 Spring MVC 请求映射的目的?

  • /rewardsonline/admin/accounts/show

  • /admin/accounts/show

  • /accounts/show

  • /show

我认为正确的答案是 /accounts/show,我有以下理由:rewardsonline 是应用程序名称(应用程序上下文名称 是应用程序名称**。

/admin/accounts/servlet 映射,最后 show 是请求映射(映射到特定方法)。

推理是正确的还是我遗漏了什么?

【问题讨论】:

  • 您能否提供完整的映射文件。当您说传入网址时,您的意思是发出请求的网址?

标签: java spring spring-mvc


【解决方案1】:

你的假设是正确的

鉴于此 web.xml 片段

<servlet-mapping>
    <servlet-name>your org.springframework.web.servlet.DispatcherServlet</servlet-name>
    <url-pattern>/admin/*</url-pattern>
</servlet-mapping>

在你的课程中你必须写

@RequestMapping(value = "/accounts/show", method = RequestMethod.GET)
...your method starts here

将类方法映射到单个 url

记得放这个

<context:component-scan base-package="the package of the classes you want to map"/>

在你的 spring 配置中

【讨论】:

    【解决方案2】:

    正确。正如您所说,“rewardsonline”是应用程序上下文。 /admin/* 是 servlet 映射,这意味着来自 /admin/ 的任何请求都将由 spring mvc 处理。 /accounts/show 用于请求映射目的。具有映射 /accounts/show 的控制器将处理此请求。

    【讨论】:

      猜你喜欢
      • 2015-06-07
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 2011-12-08
      相关资源
      最近更新 更多