2

パッケージはありますが、使い方がわかりません。.jsp ファイルと同じように使用できますか?

私はこのようなことを試しました:

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 が機能しません。何か案は?

4

1 に答える 1

11

Spring MVC には、すぐに使用できるハンドルバーのサポートはありません (サポートされているビュー テクノロジのリストについては、公式ドキュメントを参照してください)。

そうは言っても、JVM ベースのビュー テクノロジーのサポートを Spring MVC に追加するのは簡単です。org.springframework.web.servlet.View大まかに言うと、これにはとそれに対応する を実装する必要がありますorg.springframework.web.servlet.ViewResolver

幸いなことに、この統合を提供するオープン ソース プロジェクトが既に存在します。次の手順に従って、このプロジェクトを既存の Spring MVC アプリケーションに統合できます。

ステップ 1 : ライブラリをビルド システムに追加する (Maven を想定)

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

ステップ 2 : (または同等の Java 構成)ViewResolverで Spring MVC アプリケーションのハンドルバーを構成するdispatcher-servlet.xml

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

ステップ 3 : Handlebars ビューをアプリケーションに追加する

上記の構成では、Handlebars ビューを/WEB-INF/views/フォルダーの下に追加する必要があります。

ステップ 4 : ハンドルバー ビューをロードする

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

  mav.addObject("m", m);

  return mav;
}

.hbs接尾辞はすでに構成に追加されているため、ビュー名には含まれないことに注意してください。

于 2016-12-11T06:49:15.303 に答える