[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 メーリングリストの案内