快速业务通道

编写JSF自定义复合组件的技巧和窍门 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
ler * _cnnew1@author cll * */ private class ScrollerActionListener implements ActionListener { public void processAction(ActionEvent e) { // Only Integer is supported for this demo if (input.getValue() instanceof Integer) { String commandId = ((UICommand)e.getSource()).getId(); int value = ((Integer)input.getValue()).intValue(); // Increase value if the up link is clicked if (commandId.equals(UPLINK_ID)) { if (value + getStep() > max) { input.setValue(new Integer(max)); } else { input.setValue(new Integer(value + getStep())); } } // Decrease value if the down link is clicked else if (commandId.equals(DOWNLINK_ID)) { if (value - getStep() < min) { input.setValue(new Integer(min)); } else { input.setValue(new Integer(value - getStep())); } } } else { throw new IllegalArgumentException( "Unsupported binding type, " + "and only Integer instance allowed for this demo."); } } }

最后,在调用 addChildrenAndFaces 方法创建添加子组件的时候,将这个自定义动作监听器添加到增 值和减值组件中去。

清单 7. 注册 Value Scroller 动作监听器

ScrollerActionListener listener = new ScrollerActionListener(); upLink.addActionListener(listener); downLink.addActionListener(listener);

编写JSF自定义复合组件的技巧和窍门(8)

时间:2011-11-02 IBM

使用 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>

然后,在测试 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>

结束语

我们可以看到,本文介绍的自定义复合组件 Value Scroller 的实现没有编写 encode/decode 和 state/event 管理相关的逻辑,简单、快速、并且易于重用。本文总结的 JSF 自定义复合组件的开发技 巧在很大程度上降低了复杂度和工作量,优于传统的开发方式。

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号