[Seasar-user:4596] Re: S2JSF レイアウトの継承について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2006年 9月 13日 (水) 00:06:40 JST


米林@自己レスです。

From: <[E-MAIL ADDRESS DELETED]>
Sent: Tuesday, September 12, 2006 11:34 PM

> 米林です。
>
> From: "takemura" <[E-MAIL ADDRESS DELETED]>
> Sent: Tuesday, September 12, 2006 10:25 PM
>
>> takemuraと申します。
>>
>> 2SJSFのレイアウトの継承機能大変気に入っています。
>> ただちょっと困ったことがありました。
>> 普段はレイアウトを使って別ウインドウで開くときは
>> レイアウトを使わないようにするため以下のようにやってみました。
>>
>> add.html
>> <html xmlns:m="http://www.seasar.org/maya"
>> m:extends="#{param['no_layout']==null ? '/WEB-INF/layout/layout.html' :
>> '/WEB-INF/layout/noLayout.html'}">
>>
>> add.html?no_layout=hoge でレイアウトを使わないのは成功しました。
>>
>> しかし
>> <a m:action="add">足す
>>  <span m:inject="f:param" m:name="no_layout" m:value="true"/>
>> </a>
>>
>> とやるとパラメータを与えているつもりなのですがレイアウトのほうが呼ばれてしまいます。
>> 原因がわからず困っております。
>>
>> ひょっとしてもっとスマートな解決方法とかあったりしますでしょうか
>
> すぐ確認出来ないので、申し訳ないのですが
> extends評価時にはparam値が参照出来ないと思います。
> #{param['no_layout'] は常にnullになるのでは?

すみません、少し言葉足らずでした。
おそらくs2jsf-exampleのadd.htmlで試されているという
前提で話しをしていました。
add.htmlはfaces-config.xmlにおいて、navigation-ruleに
redirect設定してあると思います。
redirect設定では、extends評価時はparam値は取得出来ません。
# S2JSFはforwardベースでして、redirectでは
# paramを渡す事が出来ません。
faces-config.xmlにて、redirect設定をやめてforwardするように
すれば、期待した動作になると思います。

補足ですが、JIRAのTEEDA-50に同様のものが登録されています。

よろしくお願いします。

---
米林 正明
[E-MAIL ADDRESS DELETED] 





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