我正在使用带有Bootstrap 3框架的JSF 2.0。一切似乎都运行正常,但是当我想从RequestScoped CDI bean在Bootstrap模式中填充表单时,我遇到了问题。在调试之后,在我看来,当模态处于加载状态的页面时,bean被实例化,而不是在打开模态时。所以,当我打开模态时,bean就不再存在了。以下是我的一些代码:
这是我打开模态的地方
<li><a href="#editModal" data-toggle="modal"><span class="glyphicon glyphicon-edit"></span> 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">×</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,而是在呈现实际表单时? p>
长时间在互联网上看,但我似乎无法找到任何可以帮助我的东西。
答案 0 :(得分:0)
您可以延迟加载组件,以便在新的HTTP请求中检索内容。假设你使用像primefaces这样的东西,你可以使用p:fragment。如果使用RichFaces,则可以使用rich:outputPanel。只需确保将这两个设置为重新渲染。
你也可以像JSF panelGrid那样使用低级别的东西,并根据AJAX调用重新渲染。