使用 Value Scroller
Value Scroller 的开发已经完成,使用也非常简单,首先在 faces-config.xml 中声明引用 Value Scroller,如下所示:
清单 8. 在 faces-config.xml 中声明引用 Value Scroller
<component>
<component-type>xyz.ValueScroller</component-type>
<component-class>
component.ValueScroller
</component-class>
</component>
<component-type>xyz.ValueScroller</component-type>
<component-class>
component.ValueScroller
</component-class>
</component>
然后,在测试 JSP 页面 Test.jsp 上包含 Value Scroller 的标签描述文件。
清单 9. 在 JSP 中包含 Value Scroller 的 TLD
<%@ taglib uri="/WEB-INF/lib/ValueScroller.tld" prefix="xyz"%>
最后,在 Test.jsp 页面上使用 Value Scroller 的标签,并且指定 size/min/max/step 属性值,部署运行,就可以看到 图 1 所示的结果了。
清单 10. 在 JSP 中创建 Value Scroller 并设置属性
<xyz:valueScroller value="#{pc_Test.itemCount}" size="5" min="-50" max="10000" step="2">
</xyz:valueScroller>
</xyz:valueScroller>
结束语
我们可以看到,本文介绍的自定义复合组件 Value Scroller 的实现没有编写 encode/decode 和 state/event 管理相关的逻辑,简单、快速、并且易于重用。本文总结的 JSF 自定义复合组件的开发技巧在很大程度上降低了复杂度和工作量,优于传统的开发方式。