网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.J2EE 开发技术全接触.
.Struts VS Spring 两种MVC框架比.
.浅析Spring提供的事务管理方法.
.java版本的冒泡算法.
.JAVA多态性.
.java使用程序块.
.中国农历二百年算法及年历程序分.
.J2EE1.4中的Servlet部署应用.
.加法运算符 (+).
.J2EE基础应用:J2EE中SQL语句自动.
.用java的jwindow实现程序运行出的.
.DataGrid表格上字符串的HTML编码.
.关于Hibernate开发框架中的各个包.
.eclipse新特性--JFace Data.
.JBuilder2005 Servlet开发之开发.
.JAVA编程规范.
.创建 JSF Web 项目和页面模板(4.
.Sun否认九月开源 还需“十几.
.菜鸟必学:WebLogic 8安装配置.
.Struts网站导航系统设计新思路探.

JSF实例:组件显示(隐藏)与数据排序

发表日期:2008-1-5


  JSF中处理组件的显示和隐藏、数据的排序等相对其它框架非常轻易和直接了当, 常被教科书作为实例分析和讲解。下面这个实例来自名为《 Mastering JavaServer Faces中文版》的书(略有改动),通过组件的显示(或隐藏)及数据的排序来讲解JSF中UI组件的用法。

  先看看它的界面共三个(1)index.jsp,

JSF实例:组件显示(隐藏)与数据排序(图一)



(2)ModifyInvoice.jsp,这个修改发票界面有一个显示(隐藏)按钮,点击时可显示(或隐藏)部分组件。

JSF实例:组件显示(隐藏)与数据排序(图二)

(3)ViewInvoices.jsp,显示全部发票的列表。并可以按发票序号和数额排序。

JSF实例:组件显示(隐藏)与数据排序(图三)

  主要看看这个页面中,当点击发票的发票序号时如何正确返回到ModifyInvoice.jsp页面(在我们自己的实践当中一定要碰到的问题啊,通常的做法是超链接当中带参数)。当然首先要在faces-config.XML文件中定义导航法则:


  /ViewInvoices.jsp
  
    modifyInvoice
    /ModifyInvoice.jsp
  

  从源码可以知道这个页面通过一个 标记来显示所有发票。



...
   value="#{invoice.invoiceNumber}"    action="#{viewInvoicesPage.modifyInvoice}">
  
 

.....

  从上看出,当我们点击发票的序号时,JSF调用viewInvoicesPage.modifyInvoice方法。

 public String modifyInvoice() {
   FacesContext facesContext = FacesContext.getCurrentInstance();
        
   UIViewRoot root = facesContext.getViewRoot();
   UIData table = (UIData) root.findComponent("invoiceForm").findComponent("table");
   InvoiceBean invoice = (InvoiceBean) table.getRowData();

   ValueBinding binding = 
  facesContext.getApplication().createValueBinding("#{modifyInvoicePage}"); ModifyInvoicePage detailPage = (ModifyInvoicePage) binding.getValue(facesContext); detailPage.setInvoice(invoice); return "modifyInvoice"; }

  如此看来,当用 标记显示数据时,聪明的JSF用getRowData()可以知道你点击了那一行(即那一个发票号,这实际上是JSF将标记转为Html链接时自动加上了行索引),再将这一行数据传给 ModifyInvoice.jsp页。
上一篇:处理链处理WEB服务中的请求/响应消息 人气:643
下一篇:JavaServer Faces框架使用的设计模式 人气:569
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐