读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 3 章 导航——案例 javaquiz-rest

All + All -

javaquiz-rest

  • + -第一步:创建案例
    • 使用随书源码在NetBeans中创建项目
  • + -第二步:运行案例
    • 在IDE中运行该案例
    • 案例默认打开的首页页面是index.xhtml
    • + -首页上显示的内容
      • + -与案例javaquiz中的首页文件相比,区别是
        • 该页面多一个链接:Skip
      • 注意:在下面的阅读过程中,要重点关注它的区别点
  • + -第三步:阅读案例结构
    • + -第一层面:视图
      • 与案例javaquiz的一致
    • + -第二层面:控制
      • 与案例javaquiz的一致
    • + -第三层面:模型
      • 与案例javaquiz的一致
    • + -第四层面:配置
      • 与案例javaquiz的一致
  • + -第四步:阅读案例功能
    • + -第一层面:视图
      • + -页面文件
        • + -index
          • + -1,提供“视图参数”:
            <f:metadata>
                  <f:viewParam name="q" value="#{quizBean.currentProblem}"/>    
            </f:metadata>

            • 1)标签f:metadata
            • + -2)子标签f:viewParam
              • (1)特性name用来指定视图参数的名称
              • (2)特性value用来指定视图参数的值

            + -2,提供链接组件Skip:
            <h:link outcome="#{quizBean.skipOutcome}" value="Skip">
                        <f:param name="q" value="#{quizBean.currentProblem + 1}"/>          
            </h:link>

            • + -1)标签h:link
              • (1)特性value用来指定该链接组件在页面上显示的“文本”
              • (2)特性outcome用来指定该链接组件的“结果”
            • + -2)子标签f:param
              • (1)用来重写视图参数
              • (2)特性name用来指定参数的名称
              • (3)特性value用来指定参数的值

            3,其余的与案例javaquiz中的同名文件内容相同

        • + -success
          • 1,提供链接组件Skip:代码与index中的相同
          • 2,其余的与案例javaquiz中的同名文件内容相同
        • + -again
          • 1,提供链接组件Skip:代码与index中的相同
          • 2,其余的与案例javaquiz中的同名文件内容相同
        • + -failure
          • 1,提供链接组件Skip:代码与index中的相同
          • 2,其余的与案例javaquiz中的同名文件内容相同
        • + -done
          • 1,与案例javaquiz中的同名文件内容相同
    • + -第二层面:控制
      • + -页面控制器
        • + -QuizBean功能
          • 1)获取当前问题是问题集合中的哪一个:getCurrentProblem() : int
          • 2)设置当前问题在问题集合中的下标:setCurrentProblem(int newValue)
          • 3)获取链接“Skip”的“结果”:getSkipOutcome() : String
          • 4)其余方法头同案例javaquiz的相同,但是方法体有些不同(这些内容超出了JSF范围,所以不做分析)
      • + -数据控制器
        • + -QuizBean功能
          • 参见其作为“页面控制器”的功能描述
    • + -第三层面:模型
      • 与案例javaquiz的相同
    • + -第四层面:配置
      • 与案例javaquiz的一致
    • + -发现新功能
      • + -在页面文件中,除了done以外,都有一个链接“Skip”
        • 作用是:跳过该问题,进入下一个问题
        • 如果当前问题是问题集中的最后一个,那么就进入done页面
  • + -第五步:案例中使用的新技术
    • + -第一层面:视图
      • + -index.xhtml
        • + -1,“视图参数”标签:f:viewParam
          • *是元数据标签 f:metadata 的子标签
          • *必须放置在xhtml文件内部的顶部
          • + -*视图参数的作用
            • 这里的“参数名称与值对”相当于GET请求链接的参数,目的是传递参数到下一个视图
        • + -2,该页面对视图参数的应用
          • 在标签h:link中使用子标签f:param来重写视图参数
        • + -3,“视图参数”的其他使用方式
          • + -*不需要视图参数标签,而在“结果”字符串中指定参数
            • 例如:
              <h:link outcome="index?q=1" value="Skip">
          • + -*在使用视图参数的标签中,应用该标签的特性includeViewParams="true"来包含所有的视图参数到查询字符串中
            • 例如:
              <h:link outcome="index" includeViewParams="true" value="Skip">
      • + -其它页面
    • + -第二层面:控制
      • + -QuizBean
        • + -*创建了一个int类型的数组
          • 其size为问题集中存放问题的个数
        • + -*计分方式
          • + -在方法answerAction中
            • 如果答案正确,将在数组中的某个下标处添加数值1,而这个下标数采用与当前问题在问题集中的下标数
            • 如果答案错误,将在数组中的某个下标处添加数值0,而这个下标数采用与当前问题在问题集中的下标数
        • + -*获取得分的方式
          • + -在方法getScore中
            • 轮询int数组中的元素,并且将其累加
    • + -第三层面:模型
      • + -Problem
        • 与案例javaquiz相同
    • + -第四层面:配置
      • 与案例javaquiz相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值