问题描述
|
得到了一个将ui:repeat绑定到列表集合的页面,如下所示:
<ui:repeat value=\"#{myBean.products}\" var=\"product\">
....
....
<h:selectOneMenu id=\"type\" required=\"true\" value=\"#{product.category}\">
<f:selectItems value=\"#{productcategories}\"/>
</h:selectOneMenu>
</ui:repeat>
我有一个显示的产品列表,绑定到上面的产品字段上的下拉列表。
它可以正常工作,但是#{productcategories}的数量非常大,大约有500个类别,并且在不断增加,因此对于每个重复项,下拉项都将输出到HTML文件中。这会增加文件大小,尤其是当产品列表每页包含50个项目时,是否可以通过在多个下拉菜单中共享h:selectItems来减小输出HTML的大小?
任何人有任何想法吗?
解决方法
那是不可能的。这就是HTML的本质。反之,由
<f:selectItems>
生成的HTML<option>
元素必须进入由JSFѭ4generated生成的<select>
元素中,并且不能互相引用。
您可以考虑通过“ 5”属性在服务器端有条件地呈现(显示/隐藏)组件,以使生成的HTML输出变小。您还可以考虑在所使用的servlet容器中的响应上打开GZIP压缩,以节省网络带宽。