[Seasar-user:2423] [S2JSF] Myfaces1.0.9のJSCookMenu利用時の挙動について

Naotaka Yoshikawa nao
2005年 7月 25日 (月) 11:11:50 JST


はじめまして、吉川と申します。

下記のような現象が出ているのですが、
S2JSF側で何らかの対応をすることは、可能でしょうか?

現象:
MyfacesのJSCookMenuを利用すると、奇数番目の
メニュー項目のサブメニューが表示されない。

環境:
OS:XP SP2
JDK:1.4.2-006
Tomcat:5.0.28
S2JSF:1.0.3(1.0.4でも同じ)
Myfaces:1.0.9

具体的には以下のようなHTMLを記述した場合、
---------------------------------------------------------------
 <span m:inject="x:jscookMenu" layout="hbr" theme="ThemeIE" id="hoge">
  <span m:inject="x:navigationMenuItem" id="hoge_1" itemLabel="hoge1" >
    <span m:inject="x:navigationMenuItem" id="hoge_1_1"
itemLabel="hoge1_1" action="go_hoge"/>
  </span>
  <span m:inject="x:navigationMenuItem" id="hoge_2" itemLabel="hoge2" >
    <span m:inject="x:navigationMenuItem" id="hoge_2_1"
itemLabel="hoge_2_1" action="go_hoge"/>
  </span>
  <span m:inject="x:navigationMenuItem" id="hoge_3" itemLabel="hoge3" >
    <span m:inject="x:navigationMenuItem" id="hoge_3_1"
itemLabel="hoge_3_1" action="go_hoge"/>
  </span>
  <span m:inject="x:navigationMenuItem" id="hoge_4" itemLabel="hoge4" >
    <span m:inject="x:navigationMenuItem" id="hoge_4_1"
itemLabel="hoge_4_1" action="go_hoge"/>
  </span>
 </span>
---------------------------------------------------------------
hoge_1とhoge_3のサブメニューである、hoge1_1/hoge_3_3が
表示されません。
この時の、レンダリング後のHTMLが下記になります。
---------------------------------------------------------------
<script type="text/javascript"><!--
var myMenu =
[['', 'hoge1', null, '#', null,],
['', 'hoge2', null, '#', null,['', 'hoge_2_1', 'hoge:go_hoge', '#', null]],
['', 'hoge3', null, '#', null,],
['', 'hoge4', null, '#', null,['', 'hoge_4_1', 'hoge:go_hoge', '#', null]]];
--></script>
<div id="hoge_menu"></div>
<script type="text/javascript"><!--
 cmDraw ('hoge_menu', myMenu, 'hbr', cmThemeIE, 'ThemeIE');
--></script>
---------------------------------------------------------------
因みにMyfaces1.0.9のみを利用した場合は、下記のようになり
正常に出力されます。
<script type="text/javascript"><!--
var myMenu =
[['', 'hoge1', null, '#', null,['', 'hoge1_1', '_id1:go_hoge', '#', null]],
['', 'hoge2', null, '#', null,['', 'hoge_2_1', '_id1:go_hoge', '#', null]],
['', 'hoge3', null, '#', null,['', 'hoge_3_1', '_id1:go_hoge', '#', null]],
['', 'hoge3', null, '#', null,['', 'hoge_4_1', '_id1:go_hoge', '#', null]]];
--></script>
<div id="id1_menu"></div>
<script type="text/javascript"><!--
 cmDraw ('id1_menu', myMenu, 'hbr', cmThemeIE, 'ThemeIE');
--></script>

両者を比べると、hoge1_1/hoge_3_1がJSFにうまく渡っていないように
思えます。
因みに、この現象は、S2JSF+Myfaces1.0.8では発生しません。

いろいろ調べた結果、奇数番目のメニューは、「m:rendered="false"」として
ダミーとすることで、見た目は、ごまかせるのは分かりました。

みなさんにお聞きしたいのは、以下です。
1)Myfacesを利用する場合のタグの記述方法がS2JSFとして妥当か?
2)「m:rendered="false"」にする以外の有効な解決策の有無
 >このあたりのソースを見ればいいよでも構わないです。

以上 
-- 
+++++++++++++++++++++++++++++++++++++++
Name   : Nao Yoshikawa



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