首页 > 解决方案 > Spring Boot - 无法查看带有控制器和配置设置的网页

问题描述

我无法查看 Spring Boot 应用程序中的任何文件。我有 Spring Boot Servlet Initializer 类正确加载我的类,并且我有一个映射到该 URL 的控制器。我知道,因为我可以在日志中看到它。

WebConfig.java

package com.project.LNUProject.config;

import com.project.LNUProject.utils.ViewNames;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.UrlBasedViewResolver;

@EnableWebMvc
@Configuration
@ComponentScan(basePackages = "com.project.LNUProject.config")
@Slf4j
public class WebConfig implements WebMvcConfigurer {

    // == constants ==
    public static final String RESOLVER_PREFIX = "/WEB-INF/view/";
    public static final String RESOLVER_SUFFIX =".jsp";

    // == bean methods
    @Bean
    public ViewResolver viewResolver() {
        UrlBasedViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix(RESOLVER_PREFIX);
        viewResolver.setSuffix(RESOLVER_SUFFIX);
        return viewResolver;
    }

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        log.info("registry add properly");
        registry.addViewController("/").setViewName(ViewNames.HOME);
    }
}

DevTrainingController.java

package com.project.LNUProject.Controller;

import com.project.LNUProject.utils.Mappings;
import com.project.LNUProject.utils.ViewNames;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

    @Slf4j
    @Controller
    public class DevTrainingController implements CRUDController{
        @Override
        @GetMapping(Mappings.DEV_TRAINING_TABLE)
        public String table() {
            return ViewNames.DEV_TRAINING_TABLE;
        }

        @Override
        public String edit() {
            return "";
        }

        @Override
        public String delete() {
            return "";
        }

        @GetMapping("/")
        public String home() {
            log.info("Home template map");
            return ViewNames.HOME;
        }
    }

日志说

2018-10-22 21:09:32,974 [main] [INFO] oswsmmaRequestMappingHandlerMapping - 将“{[/DevTrainingTable],methods=[GET]}”映射到公共 java.lang.String com.project.LNUProject.Controller.DevTrainingController。 table() 2018-10-22 21:09:32,977 [main] [INFO] oswsmmaRequestMappingHandlerMapping - 将“{[/],methods=[GET]}”映射到公共 java.lang.String com.project.LNUProject.Controller。 DevTrainingController.home()

...

2018-10-22 21:10:19,837 [main] [INFO] com.project.LNUProject.config.WebConfig - 注册表添加正确

但是,当我访问http://localhost:8080/LNU-Project/时,出现 404 页错误。这是我在github上的代码的链接

标签: javaspringspring-mvcspring-boot

解决方案


模块名称叫WEB,所以映射到 http://localhost:8080/WEB/


推荐阅读