SpringMVC のビューが Velocity を使用する方法
導入
SpringMVC では、さまざまなビュー テクノロジを使用して応答データをレンダリングできます。その中でも、Velocity はテンプレート ファイルとデータを組み合わせて最終的な HTML ページを生成できる人気のテンプレート エンジンです。この記事ではSpringMVCでのVelocityビューの使い方を紹介します。
準備
始める前に、いくつかの準備が必要です。
- SpringMVC と Velocity への依存関係を追加する
pom.xml
ファイルに次の依存関係を追加します。
<!-- SpringMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.8</version>
</dependency>
<!-- Velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3.0</version>
</dependency>
- SpringMVC を構成する
次の構成を SpringMVC 構成ファイルに追加します。
<!-- 配置视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".vm"/>
<property name="contentType" value="text/html;charset=UTF-8"/>
<property name="exposeSpringMacroHelpers" value="true"/>
<property name="exposeRequestAttributes" value="true"/>
<property name="exposeSessionAttributes" value="true"/>
<property name="toolAttributeNames" value="dateTool, numberTool"/>
<property name="order" value="1"/>
</bean>
<!-- 配置 Velocity 模板引擎 -->
<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/views/"/>
<property name="velocityProperties">
<props>
<prop key="input.encoding">UTF-8</prop>
<prop key="output.encoding">UTF-8</prop>
<prop key="resource.loader">class</prop>
<prop key="class.resource.loader.class">org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader</prop>
</props>
</property>
</bean>
上記の構成では、VelocityViewResolver
2 つのVelocityConfigurer
クラスを使用して Velocity ビュー パーサーとテンプレート エンジンを構成しました。
Velocityテンプレートファイルの作成
次の内容を含むsrc/main/webapp/WEB-INF/views
名前のファイルをディレクトリに作成します。hello.vm
<!DOCTYPE html>
<html>
<head>
<title>Hello, Velocity!</title>
</head>
<body>
<h1>Hello, ${name}!</h1>
<p>Today is ${date}.</p>
</body>
</html>
上記のテンプレート ファイルでは、Velocity の構文を使用して変数を挿入します。${name}
と は、${date}
それぞれバックエンドから渡されたname
と変数の値を表しますdate
。
コントローラーの作成
次の内容を含むsrc/main/java
名前のコントローラーをディレクトリーに作成します。HelloController
@Controller
public class HelloController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public ModelAndView hello(@RequestParam("name") String name) {
ModelAndView modelAndView = new ModelAndView("hello");
modelAndView.addObject("name", name);
modelAndView.addObject("date", new Date());
return modelAndView;
}
}
上記のコントローラーでは、@Controller
と@RequestMapping
アノテーションを使用して、HTTP GET リクエストを処理するメソッドを定義します。このメソッドは、という名前のリクエスト パラメータを受け取りname
、それをhello
現在の日付とともにビューに渡します。
アプリケーションを実行する
これで、アプリケーションを起動してアクセスしhttp://localhost:8080/hello?name=World
、レンダリングされたページを確認できるようになります。
要約する
この記事では、SpringMVC で Velocity ビューを使用する方法を紹介しました。まず、SpringMVC と Velocity への依存関係を追加し、ビュー リゾルバーとテンプレート エンジンを構成しました。次に、最終的な HTML ページのレンダリングに使用される Velocity テンプレート ファイルを作成しました。最後に、データを Velocity テンプレート ファイルに渡し、最終ページをレンダリングするコントローラーを作成します。
Velocity ビューを使用すると、HTML ページの記述が容易になり、ページとデータを分離できるため、コードの保守と変更が容易になります。実際の開発では、ニーズをより適切に満たすために、必要に応じてさまざまなビュー テクノロジを選択できます。