jsf+hibernate开发小项目杂谈(三)

本文介绍JSF框架中的页面跳转配置方法及Bean生命周期的选择策略。通过XML配置实现增删改查等操作的页面跳转,并展示如何封装跳转结果。此外,还讨论了不同功能Bean的生命周期管理,包括ApplicationBean和SessionBean的应用场景。

三、页面跳转及bean的生命周期选择
    1. 页面跳转。页面跳转是jsf的一大特色,跳转前/后页面及事件操作都会在faces-config.xml进行配置。
    - 页面跳转xml配置(增删改查及重复操作)
    <navigation-rule>
        <from-view-id>/login.jsp</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/doubt/cust_list.jsp</to-view-id>
            <redirect></redirect>
        </navigation-case>
        <navigation-case>
            <from-action>failure</from-action>
            <to-view-id>/login.jsp</to-view-id>
        </navigation-case></navigation-rule>
    </navigation-rule>

    - 对页面跳转输出事件的封装[3]
    public class NavigationResults {
        /**
         * 对CRUD操作页面流转的封装
         */
        static final String QUERY = "query"; // 前往查询页面
        static final String ADD = "add"; // 前往新增页面
        static final String EDIT = "edit"; // 前往修改页面
        static final String SUCCESS = "success"; // 操作成功转向页面(一般去往列表显示页面)
        static final String FAILURE = "failure"; // 操作失败转向页面(一般回到原页面)
        static final String RETRY = "retry"; // 重试页面(即回到原页面)
    }

    使用范例
    public String loginAction() {
        // ...
    return NavigationResults.SUCCESS;
    }

    2. bean的生命周期选择与功能划分
    在纯jsp时代,javabean的生命周期有page, request, session和application种。在jsf的managed bean生命周期中去掉了page。想必大家对request/session/application
的差别比较了解,此处不再赘述。对于不同功能的bean,要选择应该恰当的scope。
   
    - 创建一个ApplicationBean。由于界面上要求提供下拉列表框,在该bean中保存这些输入选项。
    public class ApplicationBean {
        private static List cttpSelectItems; // 客户类型
       
        static {
            // 客户证件类型设置
            citpSelectItems = new ArrayList();
            citpSelectItems.add(new SelectItem("11", "居民身份证或临时身份证"));
            // ...
        }   
    }

    jsp页面中对输入选项的引用
    <h:selectOneMenu value="#{doubtCustBean.ctvc}">
        <f:selectItems value="#{appBean.ctvcSelectItems}" />
    </h:selectOneMenu>
   
    - 创建一个SessionBean。保存会话信息(比如客户登陆后的用户id等)
    ... 

一、Scala核心编程课程简介近年来随着大数据的兴起,大数据核心框架Spark和Kafka也受到到广泛关注, Spark底层是Scala实现的, 因此也带火了Scala语言,目前Scala被全球知名公司(如:谷歌、百度、阿里、Twitter、京东等)广泛用于Spark开发。新一代的物联网时代到来,会对大数据应用人才的需求越加紧迫。 尚硅谷网罗和整合了学员很喜爱的师资,打造出专注于Spark开发的Scala课程,我们讲解Scala核心编程技术,同时也讲解编程思想、设计模式和Scala底层实现,让您有豁然开朗的感受。二、课程内容和目标本课程重点讲解Scala核心编程,内容包括: Scala语言概述、运算符、程序流程控制、数据结构之集合、Map映射、过滤、化简、折叠、扫描、拉链、视图、并行集合、高阶函数、函数柯里化、偏函数、参数推断、控制抽象、Trait、面向对象编程、异常处理、惰性函数、Akka及Actor模型、Spark Master和Worker通讯、隐式转换、隐式参数、工厂模式、单例模式、观察者模式、装饰者模式、代理模式、泛型、上下界、视图界定、上下文界定、协变逆变不变和源码剖析。通过系统全面的学习,学员能掌握Scala编程思想和Scala底层机制,为进一步学习Spark打下坚实基础。三、谁适合学1.希望以较低的投入和风险,来了解自己是否适合转型从事Spark开发的求职人员。2.有一定的Java基础,或者自学过一些Java书籍与视频资料,想系统掌握Scala语言的程序员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值