0

私が何か間違ったことをしているのか、バグなのか何かなのかわかりません。

私のセットアップには、IntelliJ IDEA 12、JBoss AS 7.2.0.Final、Richfaces 4.3.4 が ear-Project (Maven なし) 内の war-File に含まれています。

私はこのインデックスページを持っています:

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich">
    <rich:notifyMessage stayTime="3500" showShadow="true" showCloseButton="true" />
    <f:view>
        <h:head>    <title>     title   </title>    </h:head>
        <h:body>
            <!-- some more divs for page-design, but commented out at the moment -->
            <div id="page">
                <div id="index_workspace" style="width:1000px;margin:auto;">
                    <h:panelGrid columns="2" id="index_workspace_table">
                        <rich:panel id="index_workspace_navi_left" style="width:180px;min-height:600px;max-height:600px;">
                            <ui:include src="general/navi_left.xhtml"/>
                        </rich:panel>
                        <rich:panel id="index_workspace_content" style="width:550px; min-height:600px; max-height:600px;" rendered="#{not empty naviBean.content}">
                            <a4j:outputPanel id="index_workspace_content_ajax" ajaxRendered="true">
                                    <ui:include src="#{naviBean.content}" id="current_site" />
                            </a4j:outputPanel>
                        </rich:panel>
                    </h:panelGrid>
                </div>
            <!-- some more divs for page-design, but commented out at the moment -->
            </div>
        </h:body>
    </f:view>
</ui:composition>

セクション内で、フォームを含むページと RF がもたらすその他すべての優れた機能を読み込みます。しかし、ロードされたページのこの部分にレンダリングの問題があります。

<rich:select id="someID_1" rendered="true" immediate="true" required="true" enableManualInput="true" defaultLabel="someLabel">
    <a4j:ajax render="true">
        <f:selectItems id="selectlist" value="#{BackingBean.SelectableItem-ListGetter}"/>
    </a4j:ajax>
</rich:select>

そして、ここに私の問題があります:

このドロップダウン リストは、F5 または CTRL-R アクションなどのページのリロード時にのみレンダリングされます。また、この要素をある種の「開始ページ」(最初に index.xhtml にロードされたもの) に設定すると、非常にうまくレンダリングされることがわかりました。この場合、この種の要素を含む他のすべてのページも正しくレンダリングされます。

私は試した

  • JSF を 2.1 から 2.2.1 に更新すると、問題が増えるだけなので、ロールバックしました。

  • 「標準」の h:selectOneMenu は同じように動作します。

  • rich:select 内の追加オプション (例: render、immediate、required、...)

  • ナビゲーション内のさまざまな ajax コマンド (さまざまなレベルのサーバー、クライアント、ajax)

  • 何日もの間グーグルで検索しました-使用できるヒントが見つかりませんでした

私が自信を持って正しい方向に私を導くすべてのヒントをいただければ幸いです。

さらに、私のナビゲーションは次のようになります (index.xhtml の別の div 内):

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich">
    <h:form id="navi_left">
        <rich:panel>
            <rich:panelMenu itemMode="ajax" groupMode="ajax" itemChangeListener="#{naviBean.updateContent}" >
            <rich:panelMenuGroup itemLeftIcon="disc" label="Erfassung" name="#{naviBean.content}">
                <rich:panelMenuItem label="someLabel_navi" name="path/to/page-not-getting-rendered-well.xhtml"/>
            </rich:panelMenuGroup>
         </rich:panel>
    </h:form>
</ui:component>

これが私を助けるのに役立つことを願っています。

4

2 に答える 2

0

私は問題を見つけたと思います。正しくレンダリングされていないコンポーネントを含む私のナビゲーションと目的のサイトは、3 番目の参加サイト (私の index.xhtml) の <div> にネストされているため、jsf-component をすべて (つまり、サーバー上で処理されるナビゲーションと目的の) サイト。したがって、次のコードスニペットは私の状況で機能します。

index.xhtml スニペット:

<rich:panel id="index_workspace_content" style="width:550px; min-height:600px; max-height:600px;" rendered="#{not empty naviBean.content}">
    <ui:include src="#{naviBean.content}" id="current_site" />
</rich:panel>

navi_left.xhtml スニペット:

<h:form id="navi_left">
    <rich:panel>
        <rich:panelMenu itemMode="server" groupMode="client" itemChangeListener="#{naviBean.updateContent}">
            <rich:panelMenuGroup label="someLabel" name="#{naviBean.content}">
                <rich:panelMenuItem label="anotherLabel" name="path/to/page-being-rendered-correctly.xhtml"/>
            </rich:panelMenuGroup>
...
</h:form>

desired.xhtml のコンポーネント スニペット:

<rich:select id="someId" rendered="true" immediate="true" required="true" enableManualInput="true">
    <f:selectItems var="#{backingBean.selectableItemList}" id="selectlist" value="#{backingBean.predefinedItem}"/>
</rich:select>

私が変更したのは、itemModeを「サーバー」に変更したことです。他の両方 (ajax とクライアント) は機能しません。groupMode を "client" に設定しても、desired.xhtml の renderprocess には影響しません。これは、rich:panelMenu の動作方法を記述するだけだからです。

少し混乱しているのは、URL が "/index.xhtml" で拡張されるようになったことです。変更前は、常に url:port/context (例: localhost:8080/app ) のみでした。

だから今はうまくいきますが、私が本当に望んでいたものではないかもしれません. このitemMode -optionに関する今後の事実を観察し、ここで報告します。

于 2013-10-30T19:01:39.073 に答える