복붙노트

[SPRING] 순환 뷰 경로 오류 봄 부팅

SPRING

순환 뷰 경로 오류 봄 부팅

나는 봄에 아주 새롭다. 제품 목록을 보여주는 Spring Boot를 사용하여 MVC 응용 프로그램을 작성하려고합니다. 그러나 나는 아래의 오류가 나타납니다 :

컨트롤러는 다음과 같습니다.

package com.springframeworkguru.controllers;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.springframeworkguru.services.ProductService;


    @Controller
    public class ProductController {

        private ProductService productService;

        @Autowired
        public void setProductService(ProductService productService) {
            this.productService = productService;
        }

        @RequestMapping("/products")
        public String listProducts(Model model){

            model.addAttribute("products", productService.listAllProducts());

            return "products";
        }

    }

이것은 주요 클래스입니다.

package com.springframeworkguru;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;

import com.springframeworkguru.controllers.ProductController;

@SpringBootApplication
public class SpringmvcApplication extends SpringBootServletInitializer{

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

및 products.html :

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Spring Core Online Tutorial - List Products</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

    <link href="http://cdn.jsdelivr.net/webjars/bootstrap/3.3.4/css/bootstrap.min.css"
          th:href="@{/webjars/bootstrap/3.3.5/css/bootstrap.min.css}"
          rel="stylesheet" media="screen"/>

    <script src="http://cdn.jsdelivr.net/webjars/jquery/2.1.4/jquery.min.js"
            th:src="@{/webjars/jquery/2.1.4/jquery.min.js}"></script>

    <link href="../css/spring-core.css"
          th:href="@{css/spring-core.css}" rel="stylesheet" media="screen"/>
</head>
<body>
<div class="container">
    <div th:if="${not #lists.isEmpty(products)}">
        <h2>Product List</h2>
        <table class="table table-striped">
            <tr>
                <th>Id</th>
                <th>Description</th>
                <th>Price</th>
                <th>Image URL</th>
                <th>List</th>
            </tr>
            <tr th:each="product : ${products}">
                <td th:text="${product.id}"></td>
                <td th:text="${product.description}"></td>
                <td th:text="${product.price}"></td>
                <td th:text="${product.imageUrl}"></td>
                <td><a th:href="${'/product/' + product.id}">View</a> </td>
            </tr>
        </table>
    </div>
</div>

</body>
</html>

products.html은 / static 폴더에 있습니다. 또한 이클립스 케플러를 사용하고 있습니다.

해결법

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

    1.spring-boot-startter-thymeleaf 의존성을 추가하면 문제가 해결되었습니다.

    spring-boot-startter-thymeleaf 의존성을 추가하면 문제가 해결되었습니다.

    그래서 이것을 pom.xml 파일에 추가하십시오 :

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

    2.기본적으로 Spring Boot는 classpath의 템플릿 디렉토리에서 Thymeleaf 템플릿을 찾을 것입니다. products.html을 src / main / resources / templates 디렉토리로 이동하십시오. 스프링 부트 문서에서 템플릿 엔진과 스프링 부트에 대한 더 많은 정보를 얻을 수 있습니다 :

    기본적으로 Spring Boot는 classpath의 템플릿 디렉토리에서 Thymeleaf 템플릿을 찾을 것입니다. products.html을 src / main / resources / templates 디렉토리로 이동하십시오. 스프링 부트 문서에서 템플릿 엔진과 스프링 부트에 대한 더 많은 정보를 얻을 수 있습니다 :

    또한 정적 디렉토리는 템플릿이 아닌 정적 컨텐츠를 넣어야하는 곳입니다.

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

    3.pom.xml에 다음 종속성을 추가하십시오.

    pom.xml에 다음 종속성을 추가하십시오.

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
        <version>1.4.0.RELEASE</version>
    </dependency>
    

    최신 버전은 mvnrepository에서 찾을 수 있습니다.

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

    4."product.ftl"을 "products.ftl"로 바꿉니다.

    "product.ftl"을 "products.ftl"로 바꿉니다.

  5. from https://stackoverflow.com/questions/36697663/circular-view-path-error-spring-boot by cc-by-sa and MIT license