Я с подозрением отношусь к практике использования атрибута name bean для указания URL-путей - хотя я уверен, что это возможно, мой ответ скажет вам, каксделайте это, используя более традиционные средства.
Прежде всего, вот новый SpringTest-servlet.xml:
<bean id="helloController" class="controllers.SpringTestController" />
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.htm">helloController</prop>
</props>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
Вы, вероятно, заметите несколько вещей.Я использую атрибут id bean-компонента для определения вашего контроллера, чтобы на него можно было ссылаться в другом месте (в bean-компоненте urlMapping , как вы собираетесь увидеть).
Я определяю urlMapping bean-компонент, который делает именно то, что вы думаете - сопоставляет запросы (например, /hello.htm) с bean-компонентом контроллера.
Я также использовал viewResolver для отображенияпросматривает имена для просмотра файлов, однако это личное предпочтение.Поскольку сейчас я использую средство разрешения представления, ваш контроллер выглядит следующим образом:
public class SpringTestController implements Controller {
@Override
public ModelAndView handleRequest(final HttpServletRequest request, final HttpServletResponse response) throws Exception {
return new ModelAndView("hello");
}
}
Мне не нужно указывать путь к представлению, потому что viewResolver добавляет его к "/ WEB-INF / jsp/ "и добавляет" .jsp "в конец.Вы можете изменить префикс на то место, где вы храните файлы представлений, или вообще не можете его использовать.Это личное предпочтение, хотя мне нравится его использовать:)
Извините, если этот ответ не соответствует вашему стилю - я пытался заставить его работать по-вашему и не смог, так вот как яобычно настраивают проект Spring (если я не использую аннотации).
Надеюсь, это поможет.