カスタムUIコンポーネントでビューのリファクタリング

WebWork2のカスタムUIコンポーネントは、重複するビューのコードに対して、リファクタリング的に使えるような気がします。

ステータス
<% if(item.getCode() == 0) { %>
  <img src="ok.png">
<% } else if(item.getCode() == 1) { %>
  <img src="error.png">
<% } %>

「ある値に対応する画像を表示」する部分をリファクタリングして、
カスタムUIコンポーネント化すると・・・
呼び出す側はこんな感じ。

ステータス
<ww:component template="status.vm" value="item"/>

status.vmはこんな感じです。

#set( $item = ${tag.actualValue} )
#if( $item.code == 0 )
  <img src="ok.png">
#elseif( $item.code == 1 )
  <img src="error.png">
#end

カスタムタグより簡単に作れるところが便利です。