我试图将JSF2.2与bootstrap 3.2.0组件结合使用,并在尝试使用带有动态生成标签列表的按钮组时遇到困难。我将问题追溯到ui:重复标记包含在生成的html中,从而阻止了引导程序的正确CSS样式。
xhtml代码是:
<div class="btn-group">
<ui:repeat var="role" value="#{editUserView.allRoles}">
<button class="btn btn-success" type="button">#{role.name}</button>
</ui:repeat>
</div>
和输出html是这样的:
<div class="btn-group">
<ui:repeat><button class="btn btn-success" type="button">Label1</button></ui:repeat>
<ui:repeat><button class="btn btn-success" type="button">Label2</button></ui:repeat>
<ui:repeat><button class="btn btn-success" type="button">Label3</button></ui:repeat>
<ui:repeat><button class="btn btn-success" type="button">Label4</button></ui:repeat>
<ui:repeat><button class="btn btn-success" type="button">Label5</button></ui:repeat>
</div>
有没有办法阻止xmlns中的JSF标记:ui =&#34; http://xmlns.jcp.org/jsf/facelets命名空间在生成的html中打印而不必编写自定义组件?< / p>
更新 只是出于好奇,按钮显示为普通按钮(它们之间有间距),而不是组合按钮所需的所有样式。
答案 0 :(得分:1)
这被认为是Mojarra issue 2900,已在2.2.2中修订。它目前是already,位于2.2.8。因此,只需将Mojarra升级到最新版本即可。
也就是说,<ui:repeat>
不是一个标记处理程序,而是一个真正的UI组件。我修正了你的问题标题。 <c:forEach>
是一个真正的标签处理程序。另请参阅JSTL in JSF2 Facelets... makes sense?了解差异。