我的环境是wildfly 10上的JSF 2.2(Mojarra)。我正在使用 font-selection JSF复合组件。该组件基本上由用于选择字体名称的HTML <select>
输入和用于选择字体大小的其他输入组成。到目前为止,这么简单。
当我尝试优化代码时出现问题。可用字体列表在服务器上生成(在backing component中),可能有超过100个条目,这导致相当多的HTML代码。这没关系,但是当我将组件放在一个页面上5次时,会生成很长的字体列表,并从服务器向浏览器传输5次。我真的想将字体列表只转移到浏览器和populate the select-items via JavaScript(或其他一些方法)。
我已经想过通过JavaScript文件将字体列表作为JSON字符串提供。这适用于静态字体列表,列表只需传输一次。但我不知道如何从复合组件中动态生成这样的JSON文件。
问题是,JSF复合组件如何以一种干净的方式向浏览器提供这样的列表?这有可能吗?我是否必须创建一个提供资源的servlet?或者是dynamic resource handler?这两个想法对我来说都不是一个干净的解决方案,因为复合组件会依赖于其他资源。