Java SpringMVC-使用MVC:resources时将控制器映射到上下文根(/)

Java SpringMVC-使用MVC:resources时将控制器映射到上下文根(/),java,spring-mvc,Java,Spring Mvc,早上好 如果将控制器映射到/(即localhost:8080/someApp/)时出现问题,则会映射到@controller(“/”),同时使用mvc:resources <mvc:resources mapping="/resources/**" location="/resources/" /> web.xml映射: <servlet-mapping> <servlet-name>springServlet</servlet-name&

早上好

如果将控制器映射到/(即localhost:8080/someApp/)时出现问题,则会映射到@controller(“/”),同时使用mvc:resources

<mvc:resources mapping="/resources/**" location="/resources/" />
web.xml映射:

  <servlet-mapping>
    <servlet-name>springServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
一切正常,只是希望上下文根能够正确响应

@Controller("/)

它们不是一回事

由于@RequestMapping可以放在类级别,因此将映射放在类上将产生预期的效果

例如:

@Controller
@RequestMapping("/")
public class RootController
{

  @RequestMapping(method=RequestMethod.GET)
  public String index()
  {
    return "index";
  }

}

这将正常工作,也适用于mvc:resources bean。

将这一行放在mvc-dispatcher-servlet.xml中

<bean name="/"
      class="com.springapp.mvc.HelloController" />

它会起作用的

web.xml中的映射

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

mvc调度器
/

您的环境是什么?例如,AFAIK Weblogic需要在web中显式地映射css。xml csstext/css解决了更新帖子时遇到的问题,但这是一个奇怪的问题。重新更新帖子以显示将解决方案添加为答案的好方法。这样,问题就被标记为“已回答”,从而避免了像我这样的人通读整个问题,却发现问题的答案在底部。不提供自己的答案而把别人的解决方案写下来是非常粗鲁的,对整个社区没有帮助。在攻击他人之前,请提供您自己的解决方案。不幸的是,上述方法对我不起作用(Spring 4.3.1)。还有其他想法吗?它应该仍然有效,我的猜测是,由于组件扫描在错误的包中查找,或者根本没有组件扫描,控制器没有被拾取@控制器只是Spring使用的元数据,用于向组件扫描表明它可以作为bean进行连接。如果不使用组件扫描,则需要手动连接bean。
@Controller
@RequestMapping("/")
public class RootController
{

  @RequestMapping(method=RequestMethod.GET)
  public String index()
  {
    return "index";
  }

}
<bean name="/"
      class="com.springapp.mvc.HelloController" />
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>