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

TAKATA, Satoshi [E-MAIL ADDRESS DELETED]
2010年 1月 31日 (日) 16:22:11 JST


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