一次非典型性JSF调试过程

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  问题

  前一阵子使用JSF开发web应用程序的过程中,碰到一个需求:A页面上存在一个链接,用户点击链接会被重定向B页面。页面B上存在一个单选框,如果是通过A页面的链接过来,会把单选框置为“选择”的状态。这是非常典型的页面转向,根据JSF的页面转向配置,以及对JSF隐含对象param的介绍,下面的代码“貌似”可行:

  A页面:<h:commandLink value="Add" action="add">

  <f:param name="type" value="student" />

  </h:commandLink>

  B页面:<h:form>

  <h:selectOneRadio id="type" value="#{param.type}">

  <f:selectItem itemlabel="student" itemvalue="student" />

  <f:selectItem itemlabel="teacher" itemvalue="teacher" />

  </h:selectOneRadio>

  <h:commandButton id="add" action="#{backingBean.add}" />

  </h:form>

  编译、部署、重新刷新页面。不错,B页面上单选框的状态能根据是否来自A页面的链接呈现选中或否的状态:一切看上去都很美,似乎已经完成了功能开发。但是,等等,让我们提交表单。浏览器刷新了一遍,又回到了这个页面。通过检查后台数据库以及日志文件,我们发现:

  数据库里面并没有添加新的记录

  系统也没有按照配置的navigation转向正确的页面

  glassfish的日志文件中没有add方法执行打印的日志,也没有任何异常信息这三点说明,#{backingBean.add}方法并没有调用,原来可以工作的添加功能出现了bug。JSF在处理页面提交请求的过程中发生了什么?让我们来调试一下。

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答