Я играю с 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.
Теперь вопрос заключается в том, что этот контроллер моделирует то, что написано в документе? Я чувствую, что не получил его должным образом. Пожалуйста, направляйте меня, чтобы смоделировать контроллер в соответствии с инструкцией о нескольких обработчиках по умолчанию.
Спасибо, Амит