###ViewResolverを設定
<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/view/" />
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="suffix" value=".vm" />
</bean>
この設定で[/WEB-INF/view/]の中のvmファイルがマークされ、
更にveiwResolverに対してサフィックスに[.vm]を連結するように設定します。
※pomにライブラリを設定してください。
###テンプレートを配置
テンプレートとなるvmファイルは[/WEB-INF/view]フォルダに配置してください。
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<p>owner_name= ${owner.ownerName} </p>
<p>owner_id= ${owner.ownerId} </p>
</body>
</html>
これで[Owner]BeanにセットしたownerNameとownerIdが置き換わることになります。
jspと一緒ですね。
###Owner
class Owner {
private String ownerId;
private String ownerName;
ゲッター
セッター
}
###実行クラス(@Controller)
@Controller
class SampleRun {
@RequestMapping("hello")
public String hello(Model model) {
Owner owner = new Owner();
owner.setOwnerName("taro");
owner.setOwnerId("1");
model.addAttribute("owner", owner);
return "vmファイル名";
}
}
vmファイル名にテンプレート名を入れてください。
至って普通のコントローラーです。
どうやらこのコントローラーからview名を返して、VelocityViewResolverに名前解決をさせる際にvmファイルとmodelにセットしたBeanとを使ってマージしてくれるようです。
###感想
最初はとっつきにくく、よくわからない存在だったVelocity。
だけど振り返ってみると意外とあっさりしているもの。
そんなものです。