Я играю с Spring MVC 3.1 и тестирую различные функции. Я хотел проверить следующее утверждение, взятое из @ RequestMapping # value doc
If you have a single default method (without explicit path mapping), then all requests without a more specific mapped method found will be dispatched to it. If you have multiple such default methods, then the method name will be taken into account for choosing between them
Итак, я создал следующий контроллер с несколькими методами обработки по умолчанию.
@Controller
@RequestMapping("/book")
public class BookController {
@RequestMapping
public @ResponseBody String greet() {
return "Hi Book!";
}
@RequestMapping
public @ResponseBody String meet() {
return "Nice to meet you Book!";
}
}
Вот конфигурация контекста веб-приложения
<beans ....>
<!-- Use @Component annotations for bean definitions -->
<context:component-scan base-package="com.botreeconsulting.lms.web"/>
<!-- Use @Controller annotations for MVC controller definitions -->
<mvc:annotation-driven />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
Но, похоже, я что-то напутал, потому что во время развертывания я получаю следующую ошибку:
java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'bookController' bean method
public java.lang.String com.botreeconsulting.lms.web.BookController.meet()
to {[/book],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already 'bookController' bean method
public java.lang.String com.botreeconsulting.lms.web.BookController.greet() mapped.
Теперь вопрос в том, моделирует ли этот контроллер то, что написано в документе? Я чувствую, что не понял это правильно. Помогите мне смоделировать контроллер, чтобы он соответствовал утверждению о нескольких обработчиках по умолчанию.
Спасибо, Амит