2016-12-10 1 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を: 'ディスパッチャ'という名前のサーブレットで 'test.hbs'という名前のビューを解決できませんでした

私はtest.hbsを通常/WEB-INF/views/test.hbsに入れました。 .jspファイルをそこに置くと、それは動作します。しかし何らかの理由で.hbsは動かない。何か案は?

答えて

6

Spring MVCには、ハンドルバーのサポートがありません(サポートされているビューテクノロジのリストについては、official documentationを参照してください)。

JVMベースのビュー技術のサポートをSpring MVCに追加するのは簡単です。高いレベルでは、これにはorg.springframework.web.servlet.Viewとそれに対応するorg.springframework.web.servlet.ViewResolverを実装する必要があります。

幸いにも、この統合を提供するan open source projectが既に存在します。このプロジェクトを既存のSpring MVCアプリケーションに統合するには、以下の手順に従います。以上のような構成を考える

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

<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)

<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

、ハンドルバービューは/WEB-INF/views/フォルダの下に追加されなければなりません。

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; 
} 

ビュー名が接尾辞として.hbsを含むべきではないことに注意してくださいは、既に構成に追加されました。

+0

おかげさまで、ありがとうございます。しかし、私はSpring MVC 4(注釈付きでXMLではなく)でそれを必要としています。私はそのようなBeanを作成する方法を知っていますが、どのように依存関係を追加しますか? – zwiebl

+1

ビルドファイル(MavenまたはGradle)に依存関係を追加する必要があります。コードはSpring 3/4と同様に動作します。 XMLとアノテーションベースの設定は同等ですので、XMLスニペットをJavaに変換するだけです。方法がわからない場合は、両方のサイドバイサイドの例を示すSpringの公式ドキュメントを参照し、そのことから学んでください。 – manish

+0

Spring 5の場合、サポートされているビューテクノロジの一覧は次のとおりです。https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-view – Paul

関連する問題