带引导模式的请求范围JSF CDIBean

带引导模式的请求范围JSF CDIBean,jsf,modal-dialog,twitter-bootstrap-3,cdi,Jsf,Modal Dialog,Twitter Bootstrap 3,Cdi,我正在使用JSF2.0和Bootstrap3框架。一切似乎都很正常,但当我想从一个RequestScoped的cdibean以引导模式填充表单时,就会遇到问题。在我看来,调试之后,bean是在加载模式所在的页面时实例化的,而不是在打开模式时实例化的。因此,当我打开modal时,bean不再存在。以下是我的一些代码: 这是我打开模式的地方 <li><a href="#editModal" data-toggle="modal"><span class="glyphic

我正在使用JSF2.0和Bootstrap3框架。一切似乎都很正常,但当我想从一个RequestScoped的cdibean以引导模式填充表单时,就会遇到问题。在我看来,调试之后,bean是在加载模式所在的页面时实例化的,而不是在打开模式时实例化的。因此,当我打开modal时,bean不再存在。以下是我的一些代码:

这是我打开模式的地方

<li><a href="#editModal" data-toggle="modal"><span class="glyphicon glyphicon-edit"></span> &nbsp;Rediger bruker</a></li>
  • 这是模式内容,位于同一页面上。farmer是bean的名字

    <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在加载页面时构造,而不是在呈现实际表单时构造


    在internet上查找了很长一段时间,但我似乎找不到任何对我有帮助的东西。

    您可以延迟加载组件,以便在新的HTTP请求中检索内容。假设您使用类似primefaces的东西,您可以使用p:fragment。如果使用RichFaces,则可以使用rich:outputPanel。只要确保这两个都设置为重新招标


    您还可以使用诸如JSF panelGrid之类的低级工具,以及基于AJAX调用的重新渲染器。

    不,这是不可能的。@Luigimendoza还有其他方法解决这个问题吗?我知道我以前使用过ViewScope,但对于CDI,我必须使用ConversationScope。当我打开modal时是否可以开始对话?我真的不知道如果我在JSF panelGrid中使用该选项,我会将这个AJAX调用放在打开模式的链接中,对吗?而且我想我还必须使用标签以外的东西?是的,你需要调用一些javascript,在标签中与JSF交互。是的,基本上是将整个模态包装在一个JSF标记中来实现这一点。