`

JSF DataTable and Binding Attribute

    博客分类:
  • JSF
阅读更多
JSF   中组件的   binding   是指   这个   HTML   组件要   绑定到那个   Bean   上,这个   Bean   本身跟   这个   HTML   组件是   一个类型的,   这样才能   get   /   set   ,   
    
  上面你的代码中     
  <h:inputText   id="firstname"   binding="#{name.firstname}"/>   
  这里   name.firstname   应该是个   HtmlInputText   类的实例,   而你说它是个   Name   类型,所以类型不对,如果你只是   让他执行     name.setFirstname();   来填充值(像   Struts   那样),那么你就应该用   <h:inputText   id="firstname"   value="#{name.firstname}"/& gt;   
    
    
  如果要用   binding   属性就这样     
    
  <h:outputText   id="myOutputText"   binding="#{myBean.myOutputText}"/>   
    
  用到   binding   还有一个地方很实用:   
  在一个   dataTable   中要得到当前行号,比如: 

  
  我这里   myBean.myTable   是个   DataTable   类型,   这样迭代总显示当前的行号,当你使用了分页时也能看到正确的行号,比如   第一页   10-20   ,   第二页他就是   21-30   。   
  <h:dataTable   id="mytable"   binding="#{myBean.myTable}"   var   ="myList">   
        <h:outputText   value="#{myTable.rowIndex}"   />   
  </h:dataTable>   
    
    
  public   class   MyPageCode   {   
    
      private   HtmlOutputText   myOutputText;   
    
      public   HtmlOutputText   getMyOutputText(){   
          if(myInputText   ==   null){   
            //   从   ViewRoot   开始搜索   ID   为   myInputText   组件并赋值。   
          UIComponent   root   =   FacesContext.getCurrentInstance().getViewRoot();   
            
            myOutputText=   (HtmlInputText)   findInDeep(root,"myOutputText");   
    
        }   
    
        return   myOutputText;   
                        
      }   
    
      public   void   setMyInputText(HtmlInputText   input){   
          this.myInputText   =   input;   
      }   
    
  }     
    
      private   UIComponent   findInDeep(UIComponent   root,   String   id   ){   
            Iterator   kids   =   root.getChildrenAndFacets();   
            while(   kids.hasNext()){   
                UIComponent   current   =   (UIComponent)   kids.next();   
                if(   id.equals(current.getId())   
                        return   current;   
                current   =   findInDeep(current,id);   
                if(current   !=null)   
                    return   current;   
            }   
            return   null;   
    
      }   
JSF_datatable
<h:dataTable id="tableRows" rowClasses = "row1,row2,row3,row4,row5,row6,..." />
你可以这样 添加 rowClasses 属性,它会为每一行轮流选择一个 rowXX,也就是 第一行 class=用 row1, 第‘二行 class=用 row2 ,row6 用完了之后重新从 row1 开始。
列的 columnClasses 也是一样的。
也就是你可以这样:
<h:dataTable id="tableRows" columnClasses= "w1,w1,w1,w1,w1,w1,w1,w1,w1,W2,w1,w1,w1" />
因为你已经知道了 第十列, 或者你不知道是第十列那就用 表达式,让这个表达式计算后返回的字符串 就像 "w1,w1,w1,w1,w1,w1,w1,w1,w1,W2,w1,w1,w1" 一样就行了.
managed-bean之间如何传递参数

在faces-config.xml中,如下两个bean,LoginBean为验证用户登陆,BlogAddBean为添加文章,现在想把用户登录时的id传递给blog.BlogAddBean

 <managed-bean>
   <managed-bean-name>login</managed-bean-name>
   <managed-bean-class>net.fanq.user.LoginBean</managed-bean-class>
   <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>
 <managed-bean>
   <managed-bean-name>blogadd</managed-bean-name>
   <managed-bean-class>net.fanq.user.BlogAddBean</managed-bean-class>
   <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>


//两种解决方法:
//1.Value Binding
//2.Variable Resolver

在BlogAddBean.java文件中

 FacesContext fc = FacesContext.getCurrentInstance();
 
 LoginBean loginBean = (LoginBean)fc.getApplication().createValueBinding("#{login}").getValue(fc);
 
 //注释掉的为第二种方法
 //LoginBean loginBean = (LoginBean)fc.getApplication().getVariableResolver().resolveVariable(fc,"login");
 
 
 private int userid = loginBean.getUserid();

分享到:
评论

相关推荐

    jsf2.0 dataTable单行修改例子

    在JSF(JavaServer Faces)2.0中,`dataTable`是一个非常重要的组件,用于展示动态数据表。这个例子展示了如何实现一个具有单行编辑功能的`dataTable`,让用户能够直接在表格中编辑数据并保存更改。下面我们将深入...

    JSF-2-DataTable

    **JSF 2.0 DataTable 全面解析** JavaServer Faces (JSF) 是一个用于构建用户界面的Java EE框架,特别适用于开发Web应用程序。在JSF 2.0版本中,DataTable组件是一个核心功能,它允许开发者以表格形式展示数据,...

    ajax4jsf 刷新datatable 例子

    在这个“ajax4jsf 刷新datatable 例子”中,我们将探讨如何利用Ajax4jsf实现数据表格(datatable)的局部刷新功能,从而提高用户体验。 首先,让我们了解什么是Datatable。在JSF中,`&lt;h:dataTable&gt;` 是一个组件,...

    jsf primefaces datatable

    **JSF PrimeFaces DataTable 深入解析** PrimeFaces 是一个流行且功能丰富的JavaServer Faces (JSF)组件库,提供了许多用户界面组件,其中包括`DataTable`。在JSF应用中,`DataTable`是一个非常重要的组件,用于...

    对DataTable进行分页

    对DataTable进行分页,对DataTable进行分页

    jsf常用文档datatable行样式,frameset及树型目录dtree,jsf滚动组件

    1. **DataTable行样式**:在JSF中,`&lt;h:datatable&gt;`组件用于展示数据表格。我们可以自定义行样式来增强用户体验。通过使用CSS类或者使用`rowStyleClass`属性,我们可以根据特定条件为表格的每一行设置不同的样式。...

    JSF DEMO

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,专为构建Web应用程序而设计。它简化了创建动态、数据驱动的Web界面的过程,通过组件化和事件驱动模型来实现。JSF DEMO通常包含了一系列示例,帮助初学...

    JSF2datatable分页控件与左侧菜单

    JSF2.xdatatable分页控件与左侧菜单最简单应用  JSF2.x,功能强大,使用方便。全世界使用JSF的人越来越多。而且也有很多很好的控件给发出来了,如:richfaces、primefaces、myfaces等,就日前来讲primefaces功能...

    Beginning JSP,JSF and Tomcat 书中源码

    Beginning JSP,JSF and Tomcat 书中源码 Beginning JSP,JSF and Tomcat 书中源码

    Beginning JSF 2 APIs and JBoss Seam

    Beginning JSF 2 APIs and JBoss? Seam You’ll learn to create and enhance an eShop using practical methods, and can repurpose the template for your own personal and professional projects. What you’...

    Apress.Pro.JSF.and.Ajax

    《Apress.Pro.JSF.and.Ajax》这本书是关于JavaServer Faces (JSF) 和 Ajax 技术的专业指南。JSF 是一个用于构建Web应用程序的Java框架,它简化了UI组件的开发和管理,而Ajax(Asynchronous JavaScript and XML)则是...

    Beginning JSF2 APIs and JBoss Seam

    ### 关于《Beginning JSF2 APIs and JBoss Seam》的知识点总结 #### 一、书籍简介与背景 《Beginning JSF2 APIs and JBoss Seam》是一本深入介绍JavaServer Faces 2(简称JSF2)及其相关API以及JBoss Seam框架的...

    Apress.Pro.JSF.and.Ajax.pdf

    《Apress.Pro.JSF.and.Ajax.pdf》这本书深入探讨了JavaServer Faces (JSF) 和Ajax在Web开发中的应用,提供了丰富的实践经验和专业见解。JSF是Java平台上的一个组件化用户界面框架,用于构建企业级的Web应用程序,而...

    jsp,jsF.and tomcat 书籍

    《jsp,jsF.and tomcat 书籍》是针对Java Web开发的一本综合指南,主要涵盖了JSP(JavaServer Pages)、JSF(JavaServer Faces)和Tomcat三个关键领域。这本书籍详细介绍了如何利用这些技术来构建高效、动态的Web应用...

    [JSF] JSF & HTML5 高级程序设计 (英文版)

    Pro JSF and HTML5 shows you how to leverage the full potential of JavaServer Faces (JSF) and HTML5. This book is for Java developers who aspire to build sophisticated, enterprise-grade web experiences...

    jee6 学习笔记 5 - Struggling with JSF2 binding GET params

    这篇"jee6 学习笔记 5 - Struggling with JSF2 binding GET params"主要探讨了开发者在使用JSF2绑定GET参数时可能遇到的挑战和解决方案。 JSF2是一个基于MVC(模型-视图-控制器)设计模式的Java框架,用于创建交互...

    Beginning JSP.JSF and Tomcat,2nd.epub

    Comprehensive and example–driven, Beginning JSP, JSF, and Tomcat: Java Web Development, Second Edition is all you need to develop dynamic Java-based web applications using JSP, connect to databases ...

    JSF and MyFaces 类库

    JavaScript Server Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端框架,它遵循Model-View-Controller(MVC)设计模式。JSF提供了一种声明式的方式来进行UI组件的创建和绑定,使得开发者可以专注于业务...

Global site tag (gtag.js) - Google Analytics