带引导模式的请求范围JSF CDIBean
我正在使用JSF2.0和Bootstrap3框架。一切似乎都很正常,但当我想从一个RequestScoped的cdibean以引导模式填充表单时,就会遇到问题。在我看来,调试之后,bean是在加载模式所在的页面时实例化的,而不是在打开模式时实例化的。因此,当我打开modal时,bean不再存在。以下是我的一些代码: 这是我打开模式的地方带引导模式的请求范围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
<li><a href="#editModal" data-toggle="modal"><span class="glyphicon glyphicon-edit"></span> 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">×</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标记中来实现这一点。