0

Bootstrap 3 フレームワークで JSF 2.0 を使用しています。すべてが正常に機能しているように見えますが、RequestScoped CDI Bean から Bootstrap モーダルにフォームを入力しようとすると問題が発生します。デバッグ後、モーダルが開かれたときではなく、モーダルがロードされたときにBeanがインスタンス化されるようです。そのため、モーダルを開くと、Bean はもう存在しません。これが私のコードの一部です:

ここでモーダルを開きます

<li><a href="#editModal" data-toggle="modal"><span class="glyphicon glyphicon-edit"></span> &nbsp;Rediger bruker</a></li>

これは、同じページにあるモーダル コンテンツです。農家は豆の名前です

<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title">Endre bruker</h4>
            </div>
            <div class="modal-body">
                <div class="well">
                    <ul class="nav nav-tabs">
                        <li class="active"><a href="#profile" class="" data-toggle="tab">Profil</a></li>
                        <li><a href="#password" class="" data-toggle="tab">Passord</a></li>
                        <li><a href="#reference" class="" data-toggle="tab">Referanseperson</a></li>
                    </ul>

                    <div class="tab-content">
                        <div class="tab-pane active" id="profile">
                            <h:form class="form-horizontal form-group">
                                <fieldset>
                                    <div class="input-group">
                                        <h:outputText id="email" class="form-control" value="#{farmer.theFarmer.email}"/>

ページがロードされたときに Bean が構築されないようにする方法はありますか?代わりに、実際のフォームがレンダリングされたときに構築されますか?

長い間インターネットを見回しましたが、私に役立つものは何も見つからないようです。

4

1 に答える 1

0

コンポーネントを遅延ロードして、コンテンツが新しい HTTP 要求で取得されるようにすることができます。Primefaces のようなものを使用すると仮定すると、p:fragment を使用できます。RichFaces を使用する場合は、rich:outputPanel を使用できます。これらの両方が再レンダリングされるように設定されていることを確認してください。

JSF panelGrid のような低レベルのものを使用して、AJAX 呼び出しに基づいて再レンダリングすることもできます。

于 2013-10-27T13:50:27.477 に答える