报错为:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'spittleController' method
public java.lang.String com.cui.action.SpittleController.spittleList()
to {[],methods=[GET]}: There is already 'mainController' bean method
public java.lang.String com.cui.action.MainController.index() mapped.
经过试验后发现是使用@RequestMapping注解时,使用了两个name属性,查源码可知:
String name() default "";
@AliasFor("path")
String[] value() default {};
@AliasFor("value")
String[] path() default {};
RequestMethod[] method() default {};
String[] params() default {};
String[] headers() default {};
String[] consumes() default {};
String[] produces() default {};
其他属性是数组,可定义多了,name属性是String,只能定义一个。问题找到了,我在代码中用了多个name属性~
解决方法:把name改成value~