[mayaa-user:913] Re: echoの中でstruts2のカスタムタグを使用すると出力が乱れる

山田 雄己 [E-MAIL ADDRESS DELETED]
2010年 11月 4日 (木) 21:44:56 JST


お世話になっております、山田です。

ソースをたどってみると、以下のようになっていました。

1. echoの中のstruts2カスタムタグを処理中に、FreemarkerのTemplateから現在
のCycleWriterImplに対してflushが呼ばれる。
↓
2. flushの中で上位のCycleWriterImplに、<input type="text" name=""
id=""/>を出力してしまう。
↓
3. EchoProcessorの中で現在のCycleWriterImplを取得しているが、もう中身は
出力された後。
↓
4. 出力順が狂う。

カスタムタグの仕様は詳しくないので本来flushを呼ぶ方が間違っているのかも
しれませんが、CycleWriterImplのflushの中でwriterOutを呼ばないようにする
ことでとりあえず私の環境では問題なくなりました。

(2010/11/04 15:55), 山田 雄己 wrote:
> お世話になっております、山田です。
> 
> mayaaのechoの中でstruts2のtextfieldなどのカスタムタグを使用すると、出力
> の順番がおかしくなり、レイアウトが崩れてしまいます。
> echoの出力より先にカスタムタグの出力が行われてしまっているような感じです。
> 
> mayaaのバージョンは1.1.23および1.1.27、struts2は2.0.14で確認しました。
> 
> ----html----
> 
> <html xmlns:m="http://mayaa.seasar.org">
> <body m:id="echo">
> 	<input m:id="textfield" type="text" />
> </body>
> </html>
> 
> ----mayaa----
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <m:mayaa xmlns:m="http://mayaa.seasar.org" xmlns:s="/struts-tags">
> 	<m:echo id="echo" />
> 	<s:textfield m:id="textfield" />
> </m:mayaa
> 
> ----期待する出力----
> 
> <html>
> <body>
> 	<input type="text" name="" id=""/>
> </body>
> </html>
> 
> ----実際の出力----
> 
> <html>
> 
> 	<input type="text" name="" id=""/><body>
> </body>
> </html>
> 
> 以上です。
> _______________________________________________
> mayaa-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/mayaa-user
> 


-- 
ヴェストソフトウェア株式会社
山田 雄己 <[E-MAIL ADDRESS DELETED]>


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