2015-12-08 2 views
1

Я разрабатываю небольшой демонстрационный проект с Spring MVC на Tomcat с зимуют и JSP-страницы. Приложение работало с thymeleaf в качестве разрешения, но мне нужно переписать мой шаблон thymeleaf как .JSP. Поэтому мне нужно было переконфигурировать все. Я также пытаюсь использовать файлы конфигурации аннотаций без каких-либо xml.Spring MVC Java на основе конфигурации - JSP не решения

Проблема в том, что я вижу исходный код моего JSP-файла без разрешения.

Запрос-сопоставление и программная логика, уже работающая с thymeleaf + spring. Я не получаю сообщений об ошибках в файлах журнала. Я пробовал много изменений, поэтому мои файлы конфигурации могут быть непоследовательными на данный момент. Любые указатели или советы приветствуются.

Мои файлы конфигурации ниже:

MyWebAppInitializer:

public class MyWebAppInitializer implements WebApplicationInitializer { 
    private static final String CONFIG_LOCATION = "MvcConfiguration"; 
    private static final String MAPPING_URL = "/";@Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     WebApplicationContext context = getContext(); 
     servletContext.addListener(new ContextLoaderListener(context)); 
     ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(context)); 
     dispatcher.setLoadOnStartup(1); 
     dispatcher.addMapping(MAPPING_URL); 
    } 
    private AnnotationConfigWebApplicationContext getContext() { 
     AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); 
     context.setConfigLocation(CONFIG_LOCATION); 
     return context; 
    } 
} 

MvcConfiguration:

class MvcConfiguration extends WebMvcConfigurerAdapter { 

    @Bean 
    public ViewResolver viewResolver() { 

     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("/WEB-INF/"); 
     viewResolver.setSuffix(".jsp"); 
     return viewResolver; 
    } 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
    } 

    @Override 
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
     configurer.enable(); 
    } 
} 

BenutzerController:

@Controller 
public class BenutzerController { 

    @Autowired 
    BenutzerRepository repository; 

    @ModelAttribute("Benutzer") 
    public Benutzer loadEmptyModelBean() { 
     return new Benutzer(); 
    } 

    @ModelAttribute("userList") 
    public List <Benutzer> userList() { 
     return toList(repository.findAll()); 
    } 

    @RequestMapping("/verwaltung") 
    public String verwaltung(@RequestParam(value = "message", required = false, defaultValue = "Defaultvalue") String message, ModelMap model) { 
     model.addAttribute("message", message); 

     return "verwaltung"; 
    } 

pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 


    <name>benutzerverwaltung</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.0.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.zaxxer</groupId> 
      <artifactId>HikariCP</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.11</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>4.2.3.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

EDIT: РЕШЕНИЕ

редактирования pom.xml:

<dependency> 
    <groupId>org.apache.tomcat.embed</groupId> 
    <artifactId>tomcat-embed-jasper</artifactId> 
    <version>8.0.29</version> 
    </dependency> 

ответ

0

вы используете встроенный Tomcat Spring ботинка? Согласно ответу на this question, вам может потребоваться добавить зависимость: compile("org.apache.tomcat.embed:tomcat-embed-jasper"). Тем не менее, у меня никогда не было JSP для правильной работы со встроенным tomcat - вместо этого вы можете создать военный файл, как говорится в the docs.

+0

Спасибо. После добавления зависимости maven, как это, она работала: – user1651804