[Seasar-user:19206] Re: [mobylet] Mayaaでパソコン用絵文字画像が表示されない

Mikitaro Hachiyanagi [E-MAIL ADDRESS DELETED]
2010年 1月 30日 (土) 01:34:21 JST


高田さん

八柳(mickey8)です。

>        <filter>
>                <filter-name>mobyletfilter</filter-name>
>                <filter-class>org.mobylet.core.http.MobyletFilter</filter-class>
>        </filter>
mayaaと連携する場合はMobyletFilterではなく、
ForceWrapMobyletFilterを使用してください。

ドキュメントが整備されておらず申し訳ありませんが、
mayaa等のテンプレートエンジンと連携するためのFilterになります。

また、上記のfilterに対してinit-paramで
<init-param>
      <param-name>isAllForceWrap</param-name>
      <param-value>true</param-value>
</init-param>
とするか、ロジック内で
ForceWrapUtils.setForceWrapRequest();
を呼び出しておくとmayaaと連携が可能になります。

# 設定については[Seasar-user:18647]、[Seasar-user:18836]もご参照いただければと思います

ForceWrapMobyletFilterを使用しない場合は携帯端末からのアクセスでも
絵文字が表示されないはずなので、おそらくPCにi絵文字が入っているために
docomoの絵文字が表示されているように見えたのではないかと思います。

その他は、下記の「Otherキャリアの場合でも絵文字を表示する」の設定がされていれば、
PCアクセスの際に絵文字が画像として表示されるかと思います。
http://mobylet.seasar.org/references/emoji.html

よろしくお願いいたします。




2010年1月29日14:16 TAKATA, Satoshi <[E-MAIL ADDRESS DELETED]>:
> 高田と申します、はじめまして。
>
> mobylet-taglib 1.0.3
> mayaa 1.2.7
>
> の環境で、mayaa単体で使用したときに、mobyletのemojiタグを使うと
> キャリアがOTHERの場合絵文字画像の<img />タグにならない現象が発生しました。
>
> mayaaファイルに
>
> <?xml version="1.0" encoding="UTF-8"?>
> <m:mayaa xmlns:m="http://mayaa.seasar.org" xmlns:mob="http://taglibs.mobylet.org/">
>        <mob:emoji m:id="sun" name="晴れ" />
> </m:mayaa>
>
> と定義して、htmlファイルに <h2 m:id="sun">ココ</h2> のようにしておくと、
> FireMobileSimulatorでdocomoにするとアイコンになるのですが、ユーザエージェントをPCにしても
> <img />タグに置換されません。
>
> web.xmlは以下のとおりで、
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app id="test" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
>        <display-name>Archetype Created Web Application</display-name>
>        <servlet>
>                <servlet-name>MayaaServlet</servlet-name>
>                <servlet-class>org.seasar.mayaa.impl.MayaaServlet</servlet-class>
>                <load-on-startup>1</load-on-startup>
>        </servlet>
>        <filter>
>                <filter-name>mobyletfilter</filter-name>
>                <filter-class>org.mobylet.core.http.MobyletFilter</filter-class>
>        </filter>
>        <filter-mapping>
>                <filter-name>mobyletfilter</filter-name>
>                <url-pattern>/*</url-pattern>
>                <dispatcher>REQUEST</dispatcher>
>                <dispatcher>FORWARD</dispatcher>
>                <dispatcher>INCLUDE</dispatcher>
>        </filter-mapping>
>        <servlet-mapping>
>                <servlet-name>MayaaServlet</servlet-name>
>                <url-pattern>*.html</url-pattern>
>        </servlet-mapping>
> </web-app>
>
>
> 少しソースを追ってみたところ、絵文字画像にしている箇所は、MobyletResponseでラップされた
> MobyletPrintWriterのようですが、上記のようにmayaaからEmojiTagを使った場合はOutputStreamしか
> 呼ばれず、変換処理が行われていないように見えました。
>
> 応急処置として、m.tldを独自クラスに書き換えてEmojiTag#doTag()をオーバーライドし、
>
>            Mobylet mobylet = MobyletFactory.getInstance();
>            if (mobylet.getCarrier() == Carrier.OTHER) {
>                Emoji emoji = SingletonUtils.get(EmojiPoolFamily.class).getEmojiPool(carrier).get(name);
>                JspWriterUtils.write(
>                        getJspContext().getOut(),
>                        designer.getImageEmoji(emoji)
>                        );
>            } else {
>                JspWriterUtils.write(
>                        getJspContext().getOut(),
>                        designer.get(name, carrier)
>                        );
>            }
>
> のように、キャリア判定で対処しています。
> どこか使い方が間違っているか、この方法以外にあればご教示いただけないでしょうか。
>
> 高田 聡
>
>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>



-- 
◆---------------------- Lei Hau'oli Co.,Ltd.----------------------◆

 八柳 幹太郎(Hachiyanagi Mikitaro)
 Tel: 080-3300-9893
 Mail: [E-MAIL ADDRESS DELETED]

 株式会社Lei Hau'oli
 〒150-0001 東京都渋谷区神宮前4丁目18番6号
 Tel: 03-5775-0315 Fax: 03-5775-0314
◆------------------------------------------------------------------------◆


Seasar-user メーリングリストの案内