ビューエンジンを変える

Mayaa/Ymirなどのビュー側でレスポンスを書き換えるエンジンを利用する

レスポンス書き換え処理の競合

Mayaa/Ymirなどのビューエンジンはレスポンスの解析、加工したものを返却しますが
mobyletの絵文字変換処理や、CSS Expand機能なども同じようにレスポンスを加工して返却する処理を行います。
このため、加工処理部分が競合し、通常の設定ではmobyletの加工処理をスルーしてしまうため
レスポンスを加工するビューエンジンと一緒に利用する場合は特別な設定が必要となります。

ForceWrap機能

ForceWrap機能とはMobyletFilterで行うレスポンス加工処理をProxyサーバのように動作させることで
Mayaa/Ymirなどと強制的に共存させる機能です。
この機能を利用する場合は、MobyletFilterを「ForceWrapMobyletFilter」に指定を変更します。
(Seasar2利用の場合は「org.seasar.mobylet.http.S2ForceWrapMobyletFilter」)

<filter>
    <filter-name>mobyletfilter</filter-name>
    <filter-class>org.mobylet.core.http.ForceWrapMobyletFilter</filter-class>
    <init-param>
        <param-name>isAllForceWrap</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

バイナリデータなどの扱い

上記設定を行った場合、画像などのバイナリデータがWASを通過する際に悪影響を与えます。
ローカル開発環境など、画像ファイルへのアクセスもWASを利用する場合はinit-paramを外し、
Actionに対してのみForceWrap機能を個別に有効化する処理を付加します。

<filter>
    <filter-name>mobyletfilter</filter-name>
    <filter-class>org.mobylet.core.http.ForceWrapMobyletFilter</filter-class>
</filter>

上記設定で、アクション処理を通過する際のみ(Interceptorを利用すると簡単)以下のメソッドを呼び出します。

ForceWrapUtils.setForceWrapRequest();

その他、Ymirなどで「*.html」という形など、アクション処理を行うパスが指定可能であれば、
以下のような設定も可能です。

<filter>
    <filter-name>mobyletfilter</filter-name>
    <filter-class>org.mobylet.core.http.ForceWrapMobyletFilter</filter-class>
    <init-param>
        <param-name>isAllForceWrap</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>mobyletFilter</filter-name>
    <url-pattern>*.html</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>
ページのTOPへ戻る