所以我正在按照我发现的 Spring Beans 范围指南:http ://richardchesterwood.blogspot.com/2011/03/using-sessions-in-spring-mvc-included.html
我正在使用第 3 个选项,这意味着我的组件在会话范围内,我的控制器在请求范围内,并且组件自动连接到控制器中(因此每个会话只有一个实例)。
但是当我这样做时,我得到了 eclipse 错误:
无法将处理程序“somethingsController”映射到 URL 路径 [/SomethingsPage]:已经映射了处理程序“scopedTarget.somethingsController”。
在我的控制器中,我有一个这样的方法:
@RequestMapping(value = "SomethingsPage")
public ModelAndView changeTheSomething(HttpServletRequest request) {
[...]
}
如果我注释掉这种方法,一切都会很好。(除了那个方法。)因此,出于某种原因,在该控制器内部使用请求映射会导致某些东西中断。有什么方法可以更改我的请求映射以使其全部正常工作吗?
所以我认为这个问题与我的 spring xml 扫描两次控制器有关,并且导致 @Requestmapping 第二次被映射,这会引发错误。考虑到我在范围界定和自动装配方面如何使用类的注释,我的 xml 文件的设置方式是否有问题?
<?xml version="1.0" encoding="windows-1252"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!-- Use @Component annotations for bean definitions -->
<context:component-scan base-package="controllers, daos, map, models, session, testControllers" scoped-proxy="targetClass" />
<!-- added this because I think it makes annotations work? -->
<context:annotation-config />
<!-- Use @Controller annotations for MVC controller definitions -->
<mvc:annotation-driven />
[... bunch of other stuff that shouldn't be relevant]