Model-Glue3.0の新機能8:マルチ出力フォーマット対応
Model-Glue3.0の8番目の新機能は、マルチ出力フォーマット対応機能です。
なお、この機能は現時点で未実装ですので、注意してください。
Webアプリケーション用MVCフレームワークは、もはやWebページだけでなく、さまざまな出力フォーマットに対応できる必要があります:
- HTML形式
- 部分HTML形式
- XML形式
- JSON形式
今までのModel-Glue開発では、悪評の高い重複作業が発生していました。
つまり、N個のフォーマット形式に対応するため、N個のイベントハンドラーを必要とします。
HTMLフォーマット:
<event-handler name=”user.list.page”>
<broadcasts>
<message name=”needUserList” />
</broadcasts>
<views>
<include template=”dspUserList.cfm” name=”body” />
</views>
<results>
<result do=”view.template” />
</results>
</event-handler>
断片HTMLフォーマット(<div>置換):
<event-handler name=”user.list.pagepartial”>
<broadcasts>
<message name=”needUserList” />
</broadcasts>
<views>
<include template=”dspUserList.cfm” name=”body” />
</views>
</event-handler>
XMLフォーマット:
<event-handler name=”user.list.xml”>
<broadcasts>
<message name=”needUserList” />
</broadcasts>
<views>
<include template=”dspDataAsXML.cfm” name=”body”>
<value name=”data” name=”userQuery” />
</include>
</views>
</event-handler>
JSONフォーマット:
<event-handler name=”user.list.json”>
<broadcasts>
<message name=”needUserList” />
</broadcasts>
<views>
<include template=”dspDataAsJson.cfm” name=”body”>
<value name=”data” name=”userQuery” />
</include>
</views>
</event-handler>
Gestureでは、<broadcasts>、<views>、<results>ブロックは、特定のフォーマットだけに作用するように設定できます。
フォーマット名は、URLまたはFormのHTTP要求で指定される要求メッセージの書式設定方法(デフォルト:"requestFormat")です。
これにより、Gestureでは4つのフォーマットを1つのイベントハンドラーで定義可能となります:
<event-handler name=”user.list.page”>
<broadcasts>
<message name=”needUserList” />
</broadcasts>
<views format=”HTML,HTMLPartial”>
<include template=”dspUserList.cfm” name=”body” />
</views>
<views format=”JSON”>
<include template=”dspDataAsJson.cfm” name=”body”>
<value name=”data” name=”userQuery” />
</include>
</views>
<results format=”HTML”>
<result do=”view.template” />
</results>
</event-handler>
コメント