2016-12-10 5 views
2

패키지가 있지만 사용 방법을 잘 모르겠습니다. 나는 .jsp 파일처럼 사용할 수 있습니까?Spring MVC에서 핸들 바를 사용하는 방법?

하는 나는 이런 식으로 뭔가를 시도 :

test.hbs

<p>{{message}}</p> 

을 내 컨트롤러 :

private static class M { 
    private final String message; 

    public M(String message) { 
     this.message = message; 
    } 

    public String getMessage() { 
     return message; 
    } 
} 

@RequestMapping("/test") 
public ModelAndView testView() { 
    ModelAndView mav = new ModelAndView("test.hbs"); 
    M m = new M("Hello, world!"); 

    mav.addObject("m", m); 

    return mav; 
} 

나는 오류를 얻고있다 : javax.servlet.ServletException : 이름이 'dispatcher'인 서블릿에서 이름이 'test.hbs'인보기를 확인할 수 없음

나는 test.hbs을 일반적으로 /WEB-INF/views/test.hbs에 넣었습니다. 거기에 .jsp 파일을두면 작동합니다. 하지만 어떤 이유로 .hbs가 작동하지 않습니다. 어떤 아이디어?

답변

6

스프링 MVC에는 핸들 막대에 대한 기본 지원이 없습니다 (지원되는 뷰 기술 목록은 official documentation 참조).

JVM 기반 뷰 기술 지원을 Spring MVC에 추가하는 것은 간단합니다. 높은 수준에서는 org.springframework.web.servlet.View 및 그에 해당하는 org.springframework.web.servlet.ViewResolver을 구현해야합니다.

다행히도이 통합을 제공하는 an open source project이 이미 있습니다. 이 프로젝트를 기존의 Spring MVC 애플리케이션에 통합하려면 다음 단계를 따라야한다. 위의 구성을 감안

<bean class="com.github.jknack.handlebars.springmvc.HandlebarsViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/"/> 
    <property name="suffix" value=".hbs"/> 
</bean> 

Step 3: Add Handlebars views to the application

<dependency> 
    <groupId>com.github.jknack</groupId> 
    <artifactId>handlebars-springmvc</artifactId> 
    <version>4.0.6</version> 
</dependency> 

Step 2: Configure a Handlebars ViewResolver for the Spring MVC application in dispatcher-servlet.xml (or equivalent Java configuration)

Step 1: Add the library to the build system (assuming Maven)

는 핸들 바보기는 /WEB-INF/views/ 폴더에 추가되어야한다. 접미사가 이미 구성에 추가되었습니다로보기 이름이 .hbs를 포함해서는 안

Step 4: Load Handlebars views

@RequestMapping("/test") 
public ModelAndView testView() { 
    ModelAndView mav = new ModelAndView("test"); 
    M m = new M("Hello, world!"); 

    mav.addObject("m", m); 

    return mav; 
} 

참고.

+0

안녕하세요, 설명해 주셔서 감사합니다.하지만 스프링 MVC 4 (주석이 있고 XML이 아님)에서 필요합니다. 나는 그러한 bean을 만드는 방법을 안다. 어떻게 dependency를 추가 하는가? – zwiebl

+1

빌드 파일 (Maven 또는 Gradle)에 종속성을 추가해야합니다. 이 코드는 Spring 3/4와 비슷하게 작동합니다. XML 및 주석 기반 구성은 동등하므로 XML 스 니펫을 Java로 변환하면됩니다. 방법을 모르는 경우, 양쪽에 대한 side-by-side 예제를 보여주는 공식 Spring 설명서를 참조하고 그 내용을 배우십시오. – manish

+0

Spring 5의 경우 지원되는 뷰 기술 목록은 다음과 같습니다. https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-view – Paul