【发布时间】:2017-08-28 15:23:41
【问题描述】:
我在为 JSF 直通元素填充属性占位符时遇到问题:
JSF:
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
<!-- ... -->
<h:selectOneMenu value="#{page.selectedCategoryDataKey}" id="mobileFilters" valueChangeListener="#{page.newCategorySelected}" layout="lineDirection" enhanced="true">
<f:selectItem value="#{null}" itemLabel="#{messages.category_all}"/>
<f:selectItems value="#{manager.dataEntryList}" var="categoryEntry" itemValue="#{categoryEntry.key}"
itemLabel="#{categoryEntry.value.categoryName}"
pt:data-track-name="See-#{categoryEntry.key}"/>
<f:ajax execute="@this" render="@form -list"/>
</h:selectOneMenu>
我得到的 HTML
<select id="mobileFilterSelectForm-mobileFilters" name="mobileFilterSelectForm-mobileFilters" size="1" onchange="m.ab(this,event,'valueChange','@this','@form list')"> <option value="" selected="selected">All</option>
<option value="Some" data-track-name="See-">Some</option>
<option value="Most Popular" data-track-name="See-">Most Popular</option>
<option value="New" data-track-name="See-">New</option>
<option value="Instant" data-track-name="See-">Instant</option>
</select>
传递是否有可能不像常规 JSF 属性那样评估占位符?任何想法如何对其进行评估?
【问题讨论】:
-
最终我最终使用了来自 xmlns:c="xmlns.jcp.org/jsp/jstl/core" 的 c:forEach 标签而不是 f:selectItems,它允许从占位符填充 data-track-name 属性值.