복붙노트

[SPRING] 이 응용 프로그램에는 / error에 대한 명시적인 매핑이 없습니다.

SPRING

이 응용 프로그램에는 / error에 대한 명시적인 매핑이 없습니다.

maven을 사용하여 튜토리얼 https://spring.io/guides/gs/uploading-files/을 수행했습니다. 내가 사용한 모든 코드가 복사되었습니다.

응용 프로그램을 실행할 수 있지만 오류가 발생합니다.

어떻게 해결할 수 있습니까?

해결법

  1. ==============================

    1.기본 클래스가 다른 클래스보다 상위 패키지에 있는지 확인하십시오.

    기본 클래스가 다른 클래스보다 상위 패키지에 있는지 확인하십시오.

    Spring Boot Application (즉, @SpringBootApplication으로 주석 처리 된 클래스)을 실행하면 Spring은 기본 클래스 패키지 아래의 클래스 만 검색합니다.

    com
       +- APP
             +- Application.java  <--- your main class should be here, above your controller classes
             |
             +- model
             |   +- user.java
             +- controller
                 +- UserController.java
    
  2. ==============================

    2.Spring 부트 애플리케이션을 만들 때 @SpringBootApplication 주석으로 주석을 붙인다. 이 주석은 응용 프로그램이 작동하는 데 필요한 여러 가지 주석을 '마무리'합니다. 이러한 주석 중 하나는 @ComponentScan 주석입니다. 이 주석은 Spring에게 Spring 구성 요소를 찾고 실행되도록 구성하도록 지시합니다.

    Spring 부트 애플리케이션을 만들 때 @SpringBootApplication 주석으로 주석을 붙인다. 이 주석은 응용 프로그램이 작동하는 데 필요한 여러 가지 주석을 '마무리'합니다. 이러한 주석 중 하나는 @ComponentScan 주석입니다. 이 주석은 Spring에게 Spring 구성 요소를 찾고 실행되도록 구성하도록 지시합니다.

    Spring이 서브 패키지를 스캔하고 다른 필수 구성 요소를 찾을 수 있도록, 애플리케이션 계층은 패키지 계층 구조의 맨 위에 있어야합니다.

    package com.test.spring.boot;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class App {
        public static void main(String[] args) {
            SpringApplication.run(App.class, args);
        }
    }
    

    아래의 코드 스 니펫은 컨트롤러 패키지가 com.test.spring.boot 패키지 아래에있는 것처럼 작동합니다.

    package com.test.spring.boot.controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HomeController {
    
        @RequestMapping("/")
        public String home(){
            return "Hello World!";
        }
    }
    

    컨트롤러 패키지가 com.test.spring.boot 패키지에 있지 않기 때문에 아래 코드 스 니펫이 작동하지 않습니다.

    package com.test.controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HomeController {
    
         @RequestMapping("/")
         public String home(){
             return "Hello World!";
         }
     }
    

    스프링 부트 문서 :

  3. ==============================

    3.응용 프로그램에 ErrorController를 추가하여이 문제를 해결할 수 있습니다. 오류 컨트롤러가 필요한보기를 리턴하도록 할 수 있습니다.

    응용 프로그램에 ErrorController를 추가하여이 문제를 해결할 수 있습니다. 오류 컨트롤러가 필요한보기를 리턴하도록 할 수 있습니다.

    내 응용 프로그램의 오류 컨트롤러는 다음과 같습니다.

    import org.springframework.boot.autoconfigure.web.ErrorAttributes;
    import org.springframework.boot.autoconfigure.web.ErrorController;
    import org.springframework.http.HttpStatus;
    import org.springframework.http.ResponseEntity;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.context.request.RequestAttributes;
    import org.springframework.web.context.request.ServletRequestAttributes;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.servlet.http.HttpServletRequest;
    import java.util.Map;
    
    /**
     * Basic Controller which is called for unhandled errors
     */
    @Controller
    public class AppErrorController implements ErrorController{
    
        /**
         * Error Attributes in the Application
         */
        private ErrorAttributes errorAttributes;
    
        private final static String ERROR_PATH = "/error";
    
        /**
         * Controller for the Error Controller
         * @param errorAttributes
         */
        public AppErrorController(ErrorAttributes errorAttributes) {
            this.errorAttributes = errorAttributes;
        }
    
        /**
         * Supports the HTML Error View
         * @param request
         * @return
         */
        @RequestMapping(value = ERROR_PATH, produces = "text/html")
        public ModelAndView errorHtml(HttpServletRequest request) {
            return new ModelAndView("/errors/error", getErrorAttributes(request, false));
        }
    
        /**
         * Supports other formats like JSON, XML
         * @param request
         * @return
         */
        @RequestMapping(value = ERROR_PATH)
        @ResponseBody
        public ResponseEntity<Map<String, Object>> error(HttpServletRequest request) {
            Map<String, Object> body = getErrorAttributes(request, getTraceParameter(request));
            HttpStatus status = getStatus(request);
            return new ResponseEntity<Map<String, Object>>(body, status);
        }
    
        /**
         * Returns the path of the error page.
         *
         * @return the error path
         */
        @Override
        public String getErrorPath() {
            return ERROR_PATH;
        }
    
    
        private boolean getTraceParameter(HttpServletRequest request) {
            String parameter = request.getParameter("trace");
            if (parameter == null) {
                return false;
            }
            return !"false".equals(parameter.toLowerCase());
        }
    
        private Map<String, Object> getErrorAttributes(HttpServletRequest request,
                                                       boolean includeStackTrace) {
            RequestAttributes requestAttributes = new ServletRequestAttributes(request);
            return this.errorAttributes.getErrorAttributes(requestAttributes,
                    includeStackTrace);
        }
    
        private HttpStatus getStatus(HttpServletRequest request) {
            Integer statusCode = (Integer) request
                    .getAttribute("javax.servlet.error.status_code");
            if (statusCode != null) {
                try {
                    return HttpStatus.valueOf(statusCode);
                }
                catch (Exception ex) {
                }
            }
            return HttpStatus.INTERNAL_SERVER_ERROR;
        }
    }
    

    위의 클래스는 Springs BasicErrorController 클래스를 기반으로합니다.

    @Configuration 파일에서 위의 ErrorController를 다음과 같이 인스턴스화 할 수 있습니다.

     @Autowired
     private ErrorAttributes errorAttributes;
    
     @Bean
     public AppErrorController appErrorController(){return new AppErrorController(errorAttributes);}
    

    ErrorAttributes를 구현하여 기본 ErrorAttributes를 재정의하도록 선택할 수 있습니다. 하지만 대부분의 경우 DefaultErrorAttributes 만 있으면 충분합니다.

  4. ==============================

    4.내 경우에는 패키지 위치 때문입니다. 즉, 컨트롤러의 패키지는 메인 클래스 패키지 위에 있어야합니다.

    내 경우에는 패키지 위치 때문입니다. 즉, 컨트롤러의 패키지는 메인 클래스 패키지 위에 있어야합니다.

    내 메인 클래스 패키지가 co.companyname.spring.tutorial 패키지 인 경우; 모든 컨트롤러 패키지에는 co.companyname.spring.tutorial.WHAT_EVER_HERE 패키지가 있어야합니다.

    package co.companyname.spring.tutorial; // package for main class
    @SpringBootApplication
    public class FirstProjectApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(FirstProjectApplication.class, args);
        }
    }
    
    
    package co.companyname.spring.tutorial.controllers; // package for controllers 
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController 
    public class HelloController { 
    
    @RequestMapping("/hello")  
    public String hello() {   
     return "Hello, world"; 
     }}
    

    프레스 부팅 대시 보드 끝내기 후

    마지막으로 컨트롤러가 맵핑되고 있는지 또는 콘솔이 아니라는 것을 확인하기 위해

    Mapped "{[/hello]}" onto public java.lang.String co.companyname.spring.tutorial.controllers.HelloController.hello()
    

    행복한 코딩

  5. ==============================

    5.필자의 경우 컨트롤러 클래스는 @Controller로 주석 처리되었다. @RestController로 변경하면 문제가 해결됩니다. 기본적으로 @RestController는 @Controller + @ResponseBody입니다. 따라서 @RestController 나 @ResponseBody 주석을 가진 @Controller를 각 메소드와 함께 사용하십시오.

    필자의 경우 컨트롤러 클래스는 @Controller로 주석 처리되었다. @RestController로 변경하면 문제가 해결됩니다. 기본적으로 @RestController는 @Controller + @ResponseBody입니다. 따라서 @RestController 나 @ResponseBody 주석을 가진 @Controller를 각 메소드와 함께 사용하십시오.

    몇 가지 유용한 참고 사항 : https://www.genuitec.com/spring-frameworkrestcontroller-vs-controller/

  6. ==============================

    6.종속성을 추가하십시오.

    종속성을 추가하십시오.

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    
  7. ==============================

    7.이 종속성을 추가하고 내 문제를 해결했습니다.

    이 종속성을 추가하고 내 문제를 해결했습니다.

    <dependency>
        <groupId>org.springframework.boot</groupId>
    
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    
  8. ==============================

    8.즉 오류가 발생했을 수 있습니다.

    즉 오류가 발생했을 수 있습니다.

    "이 응용 프로그램에는 / error에 대한 명시적인 매핑이 없으므로이를 대체로보고 있습니다."

    이것은 main () 클래스에서 지정해야하는 Controller & Service 클래스를 스캐닝하지 않기 때문입니다.

    package com.example.demo;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    @Configuration
    @EnableAutoConfiguration
    **@ComponentScan({"com.example.demo", "controller", "service"})**
    public class SpringBootMvcExample1Application {
        public static void main(String[] args) {
            SpringApplication.run(SpringBootMvcExample1Application.class, args);
        }
    }
    

    참고 : 여기서는 데모, 컨트롤러 및 서비스와 같은 다양한 클래스를 지정하여 스캔 한 다음 제대로 작동합니다.

  9. ==============================

    9.문제는 가이드에 설명 된대로 localhost : 8080 / upload 대신 localhost : 8080 /로 이동한다는 것입니다. 스프링 부트에는 정의되지 않은 경로로 이동할 때 사용되는 기본 오류 페이지가 있습니다 (보안 위험으로 간주 될 수 있음).

    문제는 가이드에 설명 된대로 localhost : 8080 / upload 대신 localhost : 8080 /로 이동한다는 것입니다. 스프링 부트에는 정의되지 않은 경로로 이동할 때 사용되는 기본 오류 페이지가 있습니다 (보안 위험으로 간주 될 수 있음).

    옵션은 오른쪽 페이지를 방문하거나 방문 페이지를 직접 추가하거나 흰색 오류 페이지를 무시하는 것입니다.

    이 특정 상황을 단순화하기 위해 가이드를 업데이트하여 / upload 대신 /를 사용하도록했습니다.

  10. ==============================

    10.기본 클래스에서 "@SpringBootApplication"구성 후 "@ComponentScan"을 인수없이 추가하면 나를 위해 일했습니다.

    기본 클래스에서 "@SpringBootApplication"구성 후 "@ComponentScan"을 인수없이 추가하면 나를 위해 일했습니다.

    메인 클래스 :

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

    RestController 클래스 :

    @RestController
    public class CommentStoreApp {
    
        @RequestMapping("/") 
        public String hello() {
            return "Hello World!";
        }
    }
    

    P.S : 응용 프로그램을 시작하기 전에 mvn clean 및 mvn install 명령을 실행하지 마십시오.

  11. ==============================

    11.나는 몇 주 동안 Spring Boot 애플리케이션을 개발 중이다. 그리고 나는 아래처럼 gettig 같은 오류가 발생했다.

    나는 몇 주 동안 Spring Boot 애플리케이션을 개발 중이다. 그리고 나는 아래처럼 gettig 같은 오류가 발생했다.

    이 오류 메시지가 나타나면 내 컨트롤러 또는 나머지 컨트롤러 클래스가 내 프로젝트에서 정의 된 노트라는 것을 깨달았습니다. 우리의 모든 컨트롤러 패키지가 @SpringBootApplication 주석을 포함하는 메인 클래스와 동일한 패키지가 아니라는 것을 의미합니다. @ConnectionBlockApplication annotation.If 코드를 작성하면 메인 클래스에 @ComponentScan 주석에 컨트롤러 패키지의 이름을 추가해야합니다. 귀하의 문제 아래에 해결 될 것입니다 ... 가장 중요한 것은 당신이 모든 컨트롤러의 패키지를 @ComponentScan 주석에 추가해야합니다.

    package com.example.demo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ComponentScan;
    
    @SpringBootApplication
    @ComponentScan({ "com.controller.package1, com.controller.package2, com.controller.package3, com.controller.packageN", "controller", "service" } // If our Controller class or Service class is not in the same packages we have //to add packages's name like this...directory(package) with main class
    public class MainApp {
        public static void main(String[] args) {
            SpringApplication.run(MainApp.class, args);
        }
    }
    

    나는이 코드가 누군가를 도울 것이라고 희망한다.

    이 오류를 해결할 다른 방법을 찾거나 나에게 제안이 있다면, 코멘트에 써주세요 ... 고마워 ...

  12. ==============================

    12.나는 그것이 정확하게 질문에 대한 답변이 아니라는 것을 알고 있지만,이 질문은 Google에 처음 나타난다. :)

    나는 그것이 정확하게 질문에 대한 답변이 아니라는 것을 알고 있지만,이 질문은 Google에 처음 나타난다. :)

    문제 ( "이 애플리케이션에는 / 오류에 대한 명시적인 매핑이 없습니다")가 Swagger UI에 액세스하려고 할 때 나타납니다.

    내 경우에는 문제가 @RestController ( "/ endpoint")에 의해 발생했는데, 이는 swagger가 제대로 처리하지 못합니다.

    따라서 오류가 발생했습니다.

    @RestController("/endpoint")
    public class EndpointController {
    

    그리고 이것은 괜찮 았어.

    @RestController
    @RequestMapping("/endpoint")
    public class EndpointController {
    
  13. ==============================

    13.이것은 명시 적 오류 페이지가 정의되지 않은 경우 발생합니다. 오류 페이지를 정의하려면 뷰에 / error 맵핑을 작성하십시오. 예 : 아래 코드는 오류가 발생했을 때 반환되는 문자열 값에 매핑됩니다.

    이것은 명시 적 오류 페이지가 정의되지 않은 경우 발생합니다. 오류 페이지를 정의하려면 뷰에 / error 맵핑을 작성하십시오. 예 : 아래 코드는 오류가 발생했을 때 반환되는 문자열 값에 매핑됩니다.

    package com.rumango.controller;
    
    import org.springframework.boot.web.servlet.error.ErrorController;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    @Controller
    public class IndexController implements ErrorController{
        private final static String PATH = "/error";
        @Override
        @RequestMapping(PATH)
        @ResponseBody
        public String getErrorPath() {
            // TODO Auto-generated method stub
            return "No Mapping Found";
        }
    
    }
    
  14. ==============================

    14.이런 종류의 문제를 해결하기 위해 수행 한 작업은 MVC 구성 클래스의 주석 @Configuration을 언급하는 것입니다.

    이런 종류의 문제를 해결하기 위해 수행 한 작업은 MVC 구성 클래스의 주석 @Configuration을 언급하는 것입니다.

    이 같은 :

    package com.example;
    
    /**
     * Created by sartika.s.hasibuan on 1/10/2017.
     */
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    
    @EnableAutoConfiguration
    @Configuration
    @ComponentScan
    public class MvcConfig extends WebMvcConfigurerAdapter {
    
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
            registry.addViewController("/home").setViewName("home");
            registry.addViewController("/").setViewName("home");
            registry.addViewController("/hello").setViewName("hello");
            registry.addViewController("/login").setViewName("login");
        }
    
    }
    
  15. ==============================

    15.나는 비슷한 오류가 있었고, 나는 스프링 부트와 벨로 시티를 사용했다. 나의 해결책은 application.properties 파일을 점검하는 것이고, spring.velocity.toolbox-config-location은이 속성이 잘못되었다는 것을 발견했다.

    나는 비슷한 오류가 있었고, 나는 스프링 부트와 벨로 시티를 사용했다. 나의 해결책은 application.properties 파일을 점검하는 것이고, spring.velocity.toolbox-config-location은이 속성이 잘못되었다는 것을 발견했다.

  16. ==============================

    16.필자의 경우이 문제는 Maven에서 먼저 실행 한 후 IntelliJ에서 SpringApplication을 실행할 때 발생합니다.

    필자의 경우이 문제는 Maven에서 먼저 실행 한 후 IntelliJ에서 SpringApplication을 실행할 때 발생합니다.

    이 문제를 해결하기 위해, 먼저 mvn clean을 실행합니다. 그런 다음 IntelliJ 내에서 SpringApplication을 실행한다.

  17. ==============================

    17.컨트롤러 클래스에서 @Controller를 @RestController로 변경하면 모든 것이 원활하게 진행됩니다.

    컨트롤러 클래스에서 @Controller를 @RestController로 변경하면 모든 것이 원활하게 진행됩니다.

  18. ==============================

    18.저도 같은 오류가 발생하여 아래의 의존성을 pom.xml에 추가하여 오류를 해결할 수있었습니다.

    저도 같은 오류가 발생하여 아래의 의존성을 pom.xml에 추가하여 오류를 해결할 수있었습니다.

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    

    이유는 JSP를보기로 사용하고 있기 때문입니다. Spring Boot Starter Web 용 기본 내장 서블릿 컨테이너는 tomcat입니다. JSP에 대한 지원을 가능하게하려면 tomcat-embed-jasper에 종속성을 추가해야합니다.

    제 경우에는 컨트롤러에서 뷰로 JSP를 반환했습니다. 이 답변이 같은 문제로 어려움을 겪고있는 누군가에게 도움이되기를 바랍니다.

  19. ==============================

    19.Main.class가 컨트롤러 위에 있어야합니다. 다음 예제의 경우 :

    Main.class가 컨트롤러 위에 있어야합니다. 다음 예제의 경우 :

    다음을 포함하는 Main.class :

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

    다음을 포함하는 EmployeeController.class :

    @RestController
    public class EmployeeController {
        @InitBinder
        public void setAllowedFields(WebDataBinder dataBinder) {
            dataBinder.setDisallowedFields("id");
        }
    
        @RequestMapping(value = "/employee/save", method = RequestMethod.GET)
        public String save(){
            Employee newEmp = new Employee();
            newEmp.setAge(25);
            newEmp.setFirstName("Pikachu");
            newEmp.setId(100);
            return "Name: " + newEmp.getFirstName() + ", Age: " + newEmp.getAge() + ", Id = " + newEmp.getId();
        }
    }
    

    메인 클래스가 {projectname} / src / main / java / main과 같은 루트 폴더에 있다면 Main 클래스 아래에 컨트롤러가 있는지 확인하십시오. 예를 들면 {projectname} / src / main / java / main / controllers입니다.

  20. ==============================

    20.기본 클래스 add : "@RestController"가있는 Java 파일 (예 : Viper.java) 및 @RequestMapping ( "/")

    기본 클래스 add : "@RestController"가있는 Java 파일 (예 : Viper.java) 및 @RequestMapping ( "/")

    @SpringBootApplication
    @RestController
    public class Viper {
    
      @RequestMapping("/")
    
       public String home(){
              return "This is what i was looking for";                      
         }
    
    public static void main( String[] args){
    
       SpringApplication.run(Viper.class , args);
    }
    
    }
    
  21. ==============================

    21.@RestController 어노테이션으로 컨트롤러 클래스를 표시했는지 확인하십시오.

    @RestController 어노테이션으로 컨트롤러 클래스를 표시했는지 확인하십시오.

  22. ==============================

    22.그것은 당신이 거기에없는 페이지에 액세스하려고한다는 것을 의미합니다. 코드에서 @RequestMapping ( "/ home")을 사용하고 "home.jsp"를 반환하면 jsp 파일이 /webapp/home.jsp에 있다고 가정하십시오. localhost : port /를 사용하여 액세스하려고하면이 오류가 발생하지만 localhost : port / home을 시도하면 오류가 발생하지 않습니다 액세스하려는 페이지의 @RequestMapping ( "/") 여기 put / mapping_path를 확인하여이 문제를 해결할 수 있습니다. 또한 Maven 종속성에서 Tomcat Jaspher의 종속성을 추가 할 수도 있습니다

    그것은 당신이 거기에없는 페이지에 액세스하려고한다는 것을 의미합니다. 코드에서 @RequestMapping ( "/ home")을 사용하고 "home.jsp"를 반환하면 jsp 파일이 /webapp/home.jsp에 있다고 가정하십시오. localhost : port /를 사용하여 액세스하려고하면이 오류가 발생하지만 localhost : port / home을 시도하면 오류가 발생하지 않습니다 액세스하려는 페이지의 @RequestMapping ( "/") 여기 put / mapping_path를 확인하여이 문제를 해결할 수 있습니다. 또한 Maven 종속성에서 Tomcat Jaspher의 종속성을 추가 할 수도 있습니다

  23. ==============================

    23.나는 gradle을 사용하여 같은 문제에 직면했고 다음 의존성을 추가 할 때 해결되었다.

    나는 gradle을 사용하여 같은 문제에 직면했고 다음 의존성을 추가 할 때 해결되었다.

    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
    compile('org.apache.tomcat.embed:tomcat-embed-jasper')
    

    이전에 나는 같은 오류를 일으키는 마지막 하나를 놓치고 있었다.

  24. ==============================

    24.이 문제에 직면하고 나서, 기본적으로 ViewControllers 및 setViewNames에 대한 매핑을 수행하는 MvcConfig 클래스에서 @Configuration 주석이 누락되었다는 사실을 깨닫게되었습니다.

    이 문제에 직면하고 나서, 기본적으로 ViewControllers 및 setViewNames에 대한 매핑을 수행하는 MvcConfig 클래스에서 @Configuration 주석이 누락되었다는 사실을 깨닫게되었습니다.

    다음은 파일의 내용입니다.

    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    **@Configuration**
    public class MvcConfig implements WebMvcConfigurer{
       public void addViewControllers(ViewControllerRegistry registry)
       {
          registry.addViewController("/").setViewName("login");
          registry.addViewController("/login").setViewName("login");
          registry.addViewController("/dashboard").setViewName("dashboard");
       }
    }
    

    희망이 사람을 도와줍니다 !!

  25. ==============================

    25.튜토리얼에서 컨트롤러는 모델 객체의 Map을 생성하고 뷰를 찾는 데 사용되는 @Controller로 주석을 달았지만 @RestController는 단순히 객체를 반환하고 객체 데이터는 JSON 또는 XML로 HTTP 응답에 직접 작성됩니다. 응답을 보려면 @RestController를 사용하십시오. 또는 @ResponseBody를 @Controller와 함께 사용하십시오.

    튜토리얼에서 컨트롤러는 모델 객체의 Map을 생성하고 뷰를 찾는 데 사용되는 @Controller로 주석을 달았지만 @RestController는 단순히 객체를 반환하고 객체 데이터는 JSON 또는 XML로 HTTP 응답에 직접 작성됩니다. 응답을 보려면 @RestController를 사용하십시오. 또는 @ResponseBody를 @Controller와 함께 사용하십시오.

    @Controller
    @ResponseBody
    

    자세히 알아보기 : https://javarevisited.blogspot.com/2017/08/difference-between-restcontroller-and-controller-annotations-spring-mvc-rest.html#ixzz5WtrMSJHJ

  26. ==============================

    26.이 튜토리얼에서는 classpath에 Thymeleaf 템플릿 엔진이 있어야한다. 나는 같은 문제에 부딪쳤다. 그리고 마침내 이것을 알아 냈다. 튜토리얼 작성자에게 그 정보를 포함시켜 줄 것입니다.

    이 튜토리얼에서는 classpath에 Thymeleaf 템플릿 엔진이 있어야한다. 나는 같은 문제에 부딪쳤다. 그리고 마침내 이것을 알아 냈다. 튜토리얼 작성자에게 그 정보를 포함시켜 줄 것입니다.

    튜토리얼을 따라 간다면 가장 쉬운 방법은 프로젝트 루트 폴더의 pom.xml에 종속성을 추가하는 것입니다. 다음 번에 앱을 실행하면 Spring이 Thymeleaf를 감지하고 uploadform 템플릿을 사용합니다

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    

    전체 예제는 Github 저장소를 참조하십시오.

  27. ==============================

    27.프로젝트를 깨끗하게하거나 깨끗하게 확인하고 실행하십시오. 다른 프로젝트를 배치하기 전에 인스턴스를 정리해야합니다. 그것은 나를 위해 일했습니다. 나는 이것을 이해하기 위해 2 일 동안 노력했다.

    프로젝트를 깨끗하게하거나 깨끗하게 확인하고 실행하십시오. 다른 프로젝트를 배치하기 전에 인스턴스를 정리해야합니다. 그것은 나를 위해 일했습니다. 나는 이것을 이해하기 위해 2 일 동안 노력했다.

  28. ==============================

    28.나는이 문제를 해결할 수있는 많은 방법을 시도해 보았다. spring-boot-starter-web - - spring-boot-starter-thymeleaf 또는 주석 @RestController를 @Controller로 대체했지만 같은 오류가 발생했습니다. 마지막으로 Application 클래스 맨 위에 @ComponentScan (basePackages = { "hello"}) 주석을 한 줄 추가하여 솔루션을 찾았습니다. 완벽하게 작동합니다.

    나는이 문제를 해결할 수있는 많은 방법을 시도해 보았다. spring-boot-starter-web - - spring-boot-starter-thymeleaf 또는 주석 @RestController를 @Controller로 대체했지만 같은 오류가 발생했습니다. 마지막으로 Application 클래스 맨 위에 @ComponentScan (basePackages = { "hello"}) 주석을 한 줄 추가하여 솔루션을 찾았습니다. 완벽하게 작동합니다.

    @ComponentScan(basePackages = {"hello"})
    public class Application {
        public static void main(String[] args) throws Exception {
            SpringApplication.run(App.class, args);
        }
    }
    

    나도 네게 도움이되기를 바란다.

  29. from https://stackoverflow.com/questions/31134333/this-application-has-no-explicit-mapping-for-error by cc-by-sa and MIT license