技术开发 频道

简化编程JSF是程序员的得力助手

    【IT168 专稿】JSF的目标是简化编程,提高效率,本文作者用一个简单的Login页面作为实例,展示了JSF在编写Java Web应用方面的巨大优势。站在普通Java Web程序员的角度来看,JSF是他们的得力助手,能够承担他们大部分繁琐的编程任务,使他们的效率得以提高,从而让他们又更多的时间和精力追求爱情,享受人生。

    1. JSF的目标是简化编程,提高效率

    事实胜于雄辩,我们不妨举个简单的例子,来说明JSF是如何简化编程,提高效率的。假设我们需要编写一个登录网页,页面上有两个文本输入框,一个用来输入用户名,另一个用来输入密码;网页上还有一个标有“确定”字样的按钮,用来提交网页。这样一个网页,用JSP如何编写,相信大家都很清楚,就不再赘述了,我们关心的是,用JSF如何完成这样一个网页。

    按照常规设计思路,我们暂时不考虑界面,先从业务逻辑开始。显然,我们需要一段业务逻辑代码,来执行用户名和密码的校验。这在Java里非常简单,定义一个JavaBean,比如LoginBean,它有两个名为userName和pasword的String类的属性(按照JavaBean的规范,为这两个属性分别配备getter和setter方法),还有一个check的方法,这个方法包含业务相关的用户名和密码校验逻辑,它返回一个String值,例如“success”或“failure”,用来指示用户名和密码是否正确。LoginBean其实是业务范畴的东西,与框架无关。

    现在看看,JSF是如何编写这样一个Login网页的。只需三个步骤:
    • 将一个文本输入组件拖放到网页上,将其value属性设为“#{LoginBean.userName}”。这将在页面上生成一个文本输入框,让用户输入用户名,并自动存贮到LoingBean的userName属性中;
    • 将另一个文本输入组件拖放到网页上,将其value属性设为“#{LoginBean.password}”。这将在页面上生成一个文本输入框,让用户输入密码,并自动存贮到LoginBean的password属性中;
    • 将一个按钮组件拖放到网页上,将其action属性设为“#{LoginBean.check}”。这将在页面上生成一个按钮,以便用户提交网页,同时,自动调用LoginBean的check方法,校验用户名和密码的有效性。
完了,这就是你作为程序员需要编写的所有代码。

    如果上面的描述过于简单,还不足以让你充分感受JSF的魅力,那么,再看看JSF值得称道的页面导航技术,也许能增加你对JSF的认识。在纯的JSF(指不混合JSP技术)应用中,你的代码中完全不需要用到URL,所有页面如何走向,你只需通过action方法返回一个适当的String就可以控制了。比如Login页面,如果action方法LoginBean.check返回的是“success”,用户将被带往登录成功页面;如果返回的是“failure”,则被带往一个登录错误页面,就是这么自然。你不需要为此编写任何代码,只需在工具中进行拖放式的配置就OK了,JSF知道该怎么做。

    事实上,JSF对Java Web编程的简化远不止这些。它的自动类型转换,可以在用户输入和后台数据之间建立直接联系;它的默认的和可插入式的数据验证功能,可以保证数据输入的正确性;它的组件模型,允许程序员构造复杂的页面;它将数据和表现形式完全分开,使得网页编写人员可以用多种方式展示数据;它的事件驱动模式,允许程序员在适当的时候、适当的地方执行自己的业务逻辑等等,不一而足。

0
相关文章