0

私はJSF 2.1.8とともにIcefaces 3.2を使用しています。メインの xhtml ページに以下のビューが含まれています。リンクがクリックされた後、myViewBeanどちらが@ViewScopedその状態を失っているようです。myLinkには、必要なアイテムのリストactionListenerを取得して設定するロジックがあります。myViewBeanレンダリング レスポンス フェーズ中、myViewBeanは空のように見えますempList@ViewScopedが に変更された場合@SessionScoped、期待どおりに動作しますが、他に 10 個の Bean があり、そのすべてを SessionScoped に変更する必要があります。Bean がその状態を失う原因は何ですか? または、ViewScoped を利用する他の方法はありますか?

main.xhtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:ui="http://java.sun.com/jsf/facelets" >
<f:view contentType="text/html">
        <h:head>
        </h:head>
        <h:body id="bodyId" bgcolor="white">
            <table border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td>
                    <ice:panelGroup>
                        <ice:form id="mainForm" name="mainForm">
                            <table>
                                <tbody>
                                    <tr>
                                        <td>
                                            <ui:include src="myTabs.xhtml"/>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </ice:form>
                    </ice:panelGroup>
                    </td>
                </tr>
            </table>
        </h:body>
</f:view>
</html>

myTabs.xhtml

<f:subview 
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:ui="http://java.sun.com/jsf/facelets">
<div>
    <table class="icePnlTbSet" id="myTabSet"
        border="0" cellpadding="0" cellspacing="0">
        <tbody>
            <tr>
                <td>
                <table cellpadding="0" cellspacing="0">
                    <tbody>
                        <tr>
                            <!-- My Tab 1 -->
                            <td class="icePnlTb" style="vertical-align: bottom;" title="tab1">
                            <table cellpadding="0" cellspacing="0">
                                <tbody>
                                    <tr>
                                        <td class="LftTop"><img alt="" src="/images/spacer.gif "
                                            width="4" height="1" /></td>
                                        <td class="MidTop"><img alt="" src="/images/spacer.gif "
                                            width="4" height="1" /></td>
                                        <td class="RtTop"><img alt="" src="/images/spacer.gif "
                                            width="4" height="1" /></td>
                                    </tr>
                                    <tr>
                                        <td class="LftMid"><img alt="" src="/images/spacer.gif "
                                            width="4" height="1" /></td>
                                        <td class="MidMid">
                                            <ice:commandLink id="myLink" value="MyTab 1" title=""
                                                actionListener="#{mySessionBean.tabChanged}">
                                                <f:param value="0" name="tab" />
                                            </ice:commandLink>
                                        </td>
                                        <td class="RtMid"><img alt="" src="/images/spacer.gif "
                                            width="4" height="1" /></td>
                                    </tr>
                                    <tr>
                                        <td class="LftBtm"><img alt="" src="/images/spacer.gif "
                                            width="4" height="1" /></td>
                                        <td class="MidBtm"><img alt="" src="/images/spacer.gif "
                                            width="4" height="1" /></td>
                                        <td class="RtBtm"><img alt="" src="/images/spacer.gif "
                                            width="4" height="1" /></td>
                                    </tr>
                                </tbody>
                            </table>
                            </td>
                            <!-- Repeat for n tabs -->
                            </tr>
                        </tbody>
                    </table>
                </td>
            </tr>
        </tbody>
    </table>
</div>
<ui:include src="tabcontent1.xhtml" />
 </f:subview>

tabcontent1.xhtml

<f:subview 
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ice="http://www.icesoft.com/icefaces/component"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ice:panelGroup>
    <ice:dataTable  id="empTable" value="#{myViewBean.empList}"
            var="emp">
            ...
    </ice:dataTable>
</ice:panelGroup>
</f:subview>
4

1 に答える 1