需要起源:私はグループにいた@:メイングループグレート神頭痛を得るのcontextPathどのように、春ブーツ+ FreeMarkerのを聞いて質問がオンラインフライ、私を殺していませんさ。私は以前のブログを見て
[テンプレートのFreeMarkerのを使って春ブーツ]は本当に.ftlファイルでのcontextPathを入手する方法について説明していないようで、これは記事では、解決すべき問題に対処です。
(1)提起された問題を、
方法(2)ばねのrequestContextAttribute定義される;
方法(3)スプリングブートはそれを定義する必要がありますか?
(4)まあ、より良い解決策はありますか?
(5)まとめ
次に私たちは一緒にこのセクションを見てください。
(1)の問題が提起します。
時々、私たちは何の設定パラメータは、その後、得られないことができない場合は、FreeMarkerのテンプレートファイル.ftlでのcontextPathを取得する必要があります。
どのように(2)春はrequestContextAttributeで定義されています。
それは次のように、指定された構成の構成ファイルの春に使用されます。
<プロパティ名= "requestContextAttribute" 値= "リクエスト" />
あなたが設定したら、私たちはx.ftl文書に次のコードを使用して導入された使用することができます。
$ {request.contextPath}。
どのように(3)春ブーツは、それを定義する必要がありますか?
春には道のプロファイルを使用することですが、我々はその春ブーツが、我々はそれを行うべきか、基本的には(サポートモードプロファイルが)ゼロ構成、プログラミングを知っていますか?私たちは、次のように属性値がrequestContextPath、特定のコードを指定FreemarkerViewResolverを定義することができます。
パッケージcom.kfit.config。
輸入org.springframework.context.annotation.Bean。
輸入org.springframework.context.annotation.Configuration。
輸入org.springframework.web.servlet.config.annotation.EnableWebMvc;
輸入org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter。
輸入org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;
/ **
*
* @Authorエンジェル - 守護天使
* @versionのv.0.1
* @Date 2017インディアン1越15 Riを
* /
@Configuration
@EnableWebMvc
パブリッククラスMvcConfigはWebMvcConfigurerAdapterを{延び
@豆
公共FreeMarkerViewResolver freeMarkerViewResolver(){
システム。アウト .println( "MvcConfig.freeMarkerViewResolver()");
FreeMarkerViewResolverレゾルバ=新しいFreeMarkerViewResolver()。
resolver.setPrefix( "");
resolver.setSuffix( "FTL。");
resolver.setContentType( "text / htmlの;のcharset = UTF-8");
resolver.setRequestContextAttribute( "要求")。
リゾルバを返します。
}
}
上記のコードを追加した後、あなたは$ {} request.contextPath x.ftlファイルで使用することができます。
(4)まあ、より良い解決策はありますか?
上記の方法で問題が解決しますが、常にサークルの中を感じたしますが、我々はそれから、私たちはコードの導入への道にすぐに戻って、コンフィギュレーション・ファイルapplication.propertiesファイルで使用されて使用するときにFreeMarkerのを使用していました我々は次のapplication.propertiesそれに指定されたダイレクト考える必要ができ、答えはイエスです。我々は唯一でapplication.propertiesに以下の設定を追加する必要があります。
spring.freemarker.request-コンテキスト属性=要求
そして、あなたは{} request.contextPath内の$ FTLファイルを使用することができます。
(5)まとめ
この記事では言われて、それは実際には非常にシンプルな2段階のプロセスであることを言いました:
1、application.propertiesに次の情報を追加します。
spring.freemarker.request-コンテキスト属性=要求
2は、x.ftlファイルで行わ:
$ {} request.contextPath