Spring MVC не может разрешить файлы .jsp

1

Я пытаюсь создать веб-службу RESTful. Я выполнил инструкции от spring.io и сделал "привет проект" (localhost: 8080/приветствие). PS: Я использовал проект Maven. Проект уже опубликован в Github: https://github.com/Tommzy/OutlierDemo/

Однако, когда я пытался позволить весеннему mvc разрешить одно из моих представлений (.jsp). Он сказал

Страница ошибки Whitelabel

Это приложение не имеет явного отображения для /error, поэтому вы видите это как резерв.

Wed Mar 25 01:31:04 EDT 2015 Появилась непредвиденная ошибка (type = Not Found, status = 404). Нет доступных сообщений

Я не уверен, почему это всегда происходит, потому что у меня уже есть файл конфигурации, как показано ниже.

@Configuration
@EnableWebMvc
@ComponentScan(basePackages="config")
public class WebConfig extends WebMvcConfigurerAdapter {

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

}

Все дерево каталогов моего проекта:

src-main|- java   |- config  |-  WebConfig.java

                  |- hello   |-  Application.java
                             |-  Greeting.java
                             |-  GreetingController.java
                             |-  PMethodController.java

        |- webapp |- WEB-INF |-  views   |-  pmethod.jsp
                             |-  web.xml

Я скопировал web.xml у своих друзей. Этот файл отлично работает в его проекте.

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <servlet>
        <servlet-name>mvc-Dispatcher</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextClass</param-name>
            <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
        </init-param>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>config</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc-Dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>/</welcome-file>
    </welcome-file-list>
</web-app>

и мой PMethodController.java:

@Controller
public class PMethodController {

    @RequestMapping("/method1")
    public String handleRequest() {
        return "pmethod";
    }

}

Мои приложения.java

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Зависит от всего выше, если я запускаю проект, а затем набираю http://localhost: 8080/method1. Он покажет мне страницу ошибок Whitelabel в верхней части страницы.

  • 0
    Вы можете использовать "org.springframework.web.servlet.view.InternalResourceViewResolver" качестве viewResolver. Проверьте это
Теги:
jsp
spring
spring-mvc
view

2 ответа

0

Вы найдете полный, простой, рабочий пример JSP с Spring Boot в репозитории spring-boot-samples.

Несколько идей по исправлению вашего приложения:

  • удалите свой WebConfig и вставьте InternalResourceViewResolver в свой класс Application. В любом случае, это не подхвачено, потому что вы не просматриваете этот пакет
  • удалите файл web.xml
0

попробуй это:

@Bean
public ViewResolver viewResolver() {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
    viewResolver.setViewClass(JstlView.class);
    viewResolver.setPrefix("/WEB-INF/views/");
    viewResolver.setSuffix(".jsp"); 
    return viewResolver;
}
  • 0
    Здравствуй! Я попробовал ваш код, однако TemplateResolver не может быть импортирован в проект. Я работаю над проектом Maven. Нужно ли мне добавлять что-то еще в файл pom.xml, чтобы он работал?
  • 0
    Извините, добавлен неправильный код, только что обновлен новый. проверьте это и дайте мне знать.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню