[Seasar-user:2431] Re: [S2JSF] Myfaces1.0.9 のJSCookMenu利用時の挙動について
Naotaka Yoshikawa
nao
2005年 7月 26日 (火) 09:06:41 JST
吉川です。
レスありがとうございます。
以下に、その後少し調べた所を追加しておきます。
Yasuo Higa (2005/07/25 21:09):
> <[E-MAIL ADDRESS DELETED]> の、
> "[Seasar-user:2423] [S2JSF] Myfaces1.0.9のJSCookMenu利用時の挙動について" において、
> "Naotaka Yoshikawa <[E-MAIL ADDRESS DELETED]>"さんは書きました:
>
> ひがです。
>
>
>>はじめまして、吉川と申します。
>>
>>下記のような現象が出ているのですが、
>>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
>>
>
> 以前もtaneさんがJSCookMenuがうまくいかないと報告されてました。
> なんか特殊なことやってるのかなぁ。
> ちょっとJSCookMenuのソース見てみます。
taneさんの件というと、[Seasar-user:2279]のことですよね?
同様のエラーは、MyFaces1.0.9でも出ています。
ERROR org.apache.myfaces.custom.navmenu.NavigationMenuUtils - Invalid
child with id _id20of component with id : hoge : must be
UINavigationMenuItem or UINavigationMenuItems, is of type :
org.seasar.jsf.component.UIText
これも、少し調べたのですが、どうも、spanタグにMyfacesの
拡張タグ(x:UINavigationMenuItem)を指定してネストさせた場合に、
S2JSFは、UITextを返すようですが、MyFacesは、UINavigationMenuItem or
UINavigationMenuItemsを期待しているために
このようなエラーを吐くようです。
以下が該当ソースの抜粋です。
---------------------------------------------------------------
org.apache.myfaces.custom.navmenu.NavigationMenuUtils
public static List getNavigationMenuItemList(UIComponent uiComponent)
{
List list = new ArrayList(uiComponent.getChildCount());
for(Iterator children = uiComponent.getChildren().iterator();
children.hasNext();)
{
UIComponent child = (UIComponent)children.next();
if(child instanceof UINavigationMenuItem)
{
........
} else
if(child instanceof UISelectItems)
{
........
} else
{
FacesContext facesContext = FacesContext.getCurrentInstance();
log.error("Invalid child with id " + child.getClientId(facesContext) +
"of component with id : " + uiComponent.getClientId(facesContext) +
" : must be UINavigationMenuItem or UINavigationMenuItems, is of
type : " +
(child != null ? child.getClass().getName() : "null"));
}
}
return list;
}
---------------------------------------------------------------
Myfaces1.0.8では、このエラーを出しつつも、動作はするようです。
またこのエラーは、ネストさせた全てのタグ(=サブメニューのあるもの全て)に
対して起きているので、サブメニューが表示されない件とは、
別問題かもしれません。
個人的には、MyFacesのfaces-config.xmlが1.0.9になって
かなり変更されているのが影響しているのでは?
という気がしてます。
以上 よろしくお願いします。
--
+++++++++++++++++++++++++++++++++++++++
Name : Naotaka Yoshikawa
Seasar-user メーリングリストの案内