2016-01-04 2 views
1

Я следовал this учебным пособиям, чтобы создать простой проект MVC Spring, который обращается к данным с помощью JPA.Как добавить передний конец в Spring MVC

Теперь я хотел бы добавить передний конец, возможно, как страницу JSP.

Прежде чем я только что сделал Dynamic Web App, который содержал веб-папку, и я только что определил отображение сервлет-url в web.xml. Смотрите рис ниже:

enter image description here

Однако в настоящее время, структура проекта отличается, и я не могу найти хорошую ссылку на то, как включить веб-контента в весеннем проекте.

enter image description here

ответ

3

Это учебник использует Spring Boot кикстарта проект Spring MVC. Вы делаете это вручную. Следовательно, вам понадобится определение bean bean view view. Поместите JSP's в папку WEB-INF и добавьте определение бина:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
</bean> 

Или, если вы делаете это с помощью аннотаций:

@Bean 
public InternalResourceViewResolver internalResourceViewResolver(){ 
     InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setPrefix("/WEB-INF/"); 
     resolver.setSuffix(".jsp"); 
     return resolver; 
} 

Кроме того, вероятно, стоит отметить, если вы на самом деле с помощью Spring Boot to kickstart Spring MVC проект, и если вы хотите использовать как шаблон шаблона Thymeleaf, тогда вам даже не нужно создавать определение bever view view. Spring Boot сканирует ваш путь к классам и создает встроенный разрешающий механизм внутреннего вида для Thymeleaf.

+0

Большое спасибо за ответ. Я хотел бы задать вам еще два небольших вопроса, чтобы прояснить ситуацию. Где вы хотите, чтобы я установил папку WEB-INF? Я имею в виду, должно ли оно иметь какое-то конкретное место? И тогда, 'InternalResourceViewResolver' используется только весной, правильно? Это типично? –

+0

'src/main/webapp' - взгляните на ответ @ Wouter. Да. 'InternalResourceViewResolver' является частью Spring. –

+0

Хорошо, сделал это. Не могли бы вы дать ссылку на «InternalResourceViewResolver», чтобы я мог действительно знать, почему он должен быть там? Большое спасибо. –

3

Похоже, теперь вы используете проект Maven. Веб-файлы находятся в src/main/webapp по умолчанию с помощью проектов maven.

Поэтому размещайте файлы WEB-INF, jsp и т. Д., И обычно вам хорошо идти.

Смотрите также https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

+0

Благодарим вас за ответ. Должен ли я использовать сервлеты для связи с интерфейсом? –