根据集合的元素使 bootstrap 手风琴重复
Making bootstrap accordion repeat based on elements of a set
我正在尝试根据本页最后一个示例制作 bootstrap 折叠(手风琴)。
http://www.w3schools.com/Bootstrap/bootstrap_collapse.asp
现在在这个例子中,div 的数量是硬编码的,在这个例子中是 3 个。
我想根据 JAVA Set .
中值的数量做同样的事情
据我所知,我正在尝试这样使用 ui:repeat
<ui:repeat value="#{myBean.apples}" var="apples">
</ui:repeat>
其中 apples 是一组(唯一列表)整数。
完整代码如下:
<h:panelGroup layout="block"
rendered="#{researcherQueriesDetailBean.offerPersonDTO.size() > 0}">
<div class="panel-group" id="accordion" role="tablist"
aria-multiselectable="true">
<ui:repeat value="#{researcherQueriesDetailBean.offerMakers}"
var="offerMakers">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse"
data-parent="#accordion" href="#sample-list"
aria-expanded="false" aria-controls="sample-list">
Sample Availability </a>
</h4>
</div>
<div id="sample-list" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body"></div>
</div>
</div>
</ui:repeat>
</div>
</h:panelGroup>
我在代码中放置 ui:repeat 时遇到问题,以便手风琴面板根据 set.Is 中元素的数量重复,甚至可以这样做吗?在这种情况下,任何代码参考都会有所帮助。
谢谢。
根据您的代码:
<ui:repeat value="#{researcherQueriesDetailBean.offerMakers}"
var="offerMaker">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse"
data-parent="#accordion" href="#sample-list"
aria-expanded="false" aria-controls="sample-list">
Sample Availability </a>
</h4>
</div>
<div id="sample-list" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body"></div>
</div>
</div>
</ui:repeat>
你正在对 offerMakers
进行迭代,但当你说要对一组 Integers
进行迭代时,我没有看到你将这些对象用于任何事情,但我不认为你了解集合的行为方式。
无论如何,如果您使用此代码进行迭代,您将只会得到 一次 迭代,将您 <ui:repeat
更改为以下内容,您就会明白我的意思:
<ui:repeat value="#{researcherQueriesDetailBean.offerMakers}"
var="offerMaker">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse"
data-parent="#accordion" href="#sample-list"
aria-expanded="false" aria-controls="sample-list">
OFFERMAKER VALUE IS: #{offerMaker}
</a>
</h4>
</div>
<div id="sample-list" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body"></div>
</div>
</div>
</ui:repeat>
如果您想根据元素的数量(大小)创建动态手风琴 Set
那么您可能需要这样的东西:
<c:forEach begin="0" end="#{researcherQueriesDetailBean.offerMakersSize}" var="i">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading#{i}">
<h4 class="panel-title">
<a role="button" data-toggle="collapse"
data-parent="#accordion" href="#hh#{i}"
aria-expanded="false" aria-controls="sample-list">
Collapsible group #{i}
</a>
</h4>
</div>
<div id="hh#{i}" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="heading#{i}">
<div class="panel-body">some info #{i}</div>
</div>
</div>
</c:forEach>
您的 ResearcherQueriesDetailBean
将采用以下方法:
public Integer getOfferMakersSize(){
return offerMakers.size();
}
我正在尝试根据本页最后一个示例制作 bootstrap 折叠(手风琴)。
http://www.w3schools.com/Bootstrap/bootstrap_collapse.asp
现在在这个例子中,div 的数量是硬编码的,在这个例子中是 3 个。 我想根据 JAVA Set .
中值的数量做同样的事情据我所知,我正在尝试这样使用 ui:repeat
<ui:repeat value="#{myBean.apples}" var="apples">
</ui:repeat>
其中 apples 是一组(唯一列表)整数。
完整代码如下:
<h:panelGroup layout="block"
rendered="#{researcherQueriesDetailBean.offerPersonDTO.size() > 0}">
<div class="panel-group" id="accordion" role="tablist"
aria-multiselectable="true">
<ui:repeat value="#{researcherQueriesDetailBean.offerMakers}"
var="offerMakers">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse"
data-parent="#accordion" href="#sample-list"
aria-expanded="false" aria-controls="sample-list">
Sample Availability </a>
</h4>
</div>
<div id="sample-list" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body"></div>
</div>
</div>
</ui:repeat>
</div>
</h:panelGroup>
我在代码中放置 ui:repeat 时遇到问题,以便手风琴面板根据 set.Is 中元素的数量重复,甚至可以这样做吗?在这种情况下,任何代码参考都会有所帮助。
谢谢。
根据您的代码:
<ui:repeat value="#{researcherQueriesDetailBean.offerMakers}"
var="offerMaker">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse"
data-parent="#accordion" href="#sample-list"
aria-expanded="false" aria-controls="sample-list">
Sample Availability </a>
</h4>
</div>
<div id="sample-list" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body"></div>
</div>
</div>
</ui:repeat>
你正在对 offerMakers
进行迭代,但当你说要对一组 Integers
进行迭代时,我没有看到你将这些对象用于任何事情,但我不认为你了解集合的行为方式。
无论如何,如果您使用此代码进行迭代,您将只会得到 一次 迭代,将您 <ui:repeat
更改为以下内容,您就会明白我的意思:
<ui:repeat value="#{researcherQueriesDetailBean.offerMakers}"
var="offerMaker">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse"
data-parent="#accordion" href="#sample-list"
aria-expanded="false" aria-controls="sample-list">
OFFERMAKER VALUE IS: #{offerMaker}
</a>
</h4>
</div>
<div id="sample-list" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body"></div>
</div>
</div>
</ui:repeat>
如果您想根据元素的数量(大小)创建动态手风琴 Set
那么您可能需要这样的东西:
<c:forEach begin="0" end="#{researcherQueriesDetailBean.offerMakersSize}" var="i">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading#{i}">
<h4 class="panel-title">
<a role="button" data-toggle="collapse"
data-parent="#accordion" href="#hh#{i}"
aria-expanded="false" aria-controls="sample-list">
Collapsible group #{i}
</a>
</h4>
</div>
<div id="hh#{i}" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="heading#{i}">
<div class="panel-body">some info #{i}</div>
</div>
</div>
</c:forEach>
您的 ResearcherQueriesDetailBean
将采用以下方法:
public Integer getOfferMakersSize(){
return offerMakers.size();
}