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

Mikitaro Hachiyanagi [E-MAIL ADDRESS DELETED]
2010年 2月 1日 (月) 12:13:11 JST


高田さん

八柳(mickey8)です。

ご確認ありがとうございます。
ドキュメントに説明がないことが問題ですね。。。
近日中にサイトの方に追記しておくようにします。

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



2010年1月31日16:22 TAKATA, Satoshi <[E-MAIL ADDRESS DELETED]>:
> 八柳(mickey8)さん
>
> 高田です、ご回答ありがとうございます。
>
> ForceWrapMobyletFilterであっさり解決しました。
> 実は過去ログを見てs2extensionのS2ForceWrapMobyletFilterを
> 試したりしていましたが、seasar2を使わない場合のために
> coreのほうにも同じようなfilter用意されていたんですね。。。
>
> お手数をおかけしました。
>
> On 2010/01/30, at 1:34, Mikitaro Hachiyanagi wrote:
>
>> 高田さん
>>
>> 八柳(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 mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>
> _______________________________________________
> 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 メーリングリストの案内