Я играю с весной MVC 3.1 и тестирую различные функции. Я хотел проверить следующее заявление, взятое из @RequestMapping#value docSpring MVC 3: Неоднозначное картирование найдено
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.
Теперь вопрос является ли этот контроллер моделирует то, что написано в документе? Я чувствую, что не получил его должным образом. Просим руководствоваться, чтобы модель контроллера соответствовала заявлению о нескольких обработчиках по умолчанию.
Спасибо, Амит
'mydefault()' будет обрабатывать/записывать только not/book/abc. –
Arun, 'Если у вас несколько таких методов по умолчанию ...'. Можно ли настроить несколько методов по умолчанию? –
Что вы подразумеваете под несколькими стандартами? В любом дизайне будет только один по умолчанию –