2

我不明白为什么下面给出了一个模棱两可的映射。

一种。控制器类

@Controller
@RequestMapping("/employees")
public class EmployeeController {

@Autowired
private EmployeeService employeeService;

@RequestMapping(value = "/new", method = RequestMethod.GET)
public String get(Model model) {
    return "xx";
}

}

控制台输出:

java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'org.tutorial.spring.controller.EmployeeController#0' bean method 
public java.lang.String org.tutorial.spring.controller.EmployeeController.get(org.springframework.ui.Model)
to {[/employees/new],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already 'employeeController' bean method
public java.lang.String org.tutorial.spring.controller.EmployeeController.get(org.springframework.ui.Model) mapped.    

它说方法已经被映射。怎么会这样?

湾。web.xml

<servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

C。春天.xml

<context:annotation-config />
<context:component-scan base-package="org.tutorial.spring" />
<mvc:annotation-driven />
<bean class="org.tutorial.spring.controller.EmployeeController" />
4

1 回答 1

7

尝试删除 bean 元素

<bean class="org.tutorial.spring.controller.EmployeeController" />

来自您的 XML。我怀疑这会导致您出现问题,因为

<context:component-scan base-package="org.tutorial.spring" />

将扫描您的包,并将 EmployeeController 识别为 bean,因为它的注释。然后,之后,您将手动添加相同的 bean。

于 2013-03-24T02:59:08.757 回答