当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>J2EE

简单易用的JSF翻页组件

    新的QFaces组件scroller, 这是一个翻页组件,直接绑定到dataTable中即可,使用非常简单,组件会包含在1.5中发布,最近会进行一些测试,组件的性能很好,比网上大部分人所用到的LocalDataModel方式要好,从性能上和易用性上。

    从性能上,组件不会在生命周期中出现两次调用数据的多余操作,并且刷新之后仍可停留在原来所在的页面。

    从易用性上,只要实现一个非常简单的方法绑定就可以,这已经近乎傻瓜式的了。

    现在可以在这里看到一些效果,html,及java代码都有

    http://huliqing-qfaces.appspot.com/qfaces-example/ui-scroller.faces?qRecordStart=90

    预览一下用法吧,html代码

<h:form>
            
<q:scroller for="myDataTable" 
                bind
="#{scrollerBean.loadData}"
                displayCount
="true"
                displayJump
="true"
                displayPage
="10">
                
<h:dataTable id="myDataTable"  border="1" 
                    binding
="#{scrollerBean.myData}" 
                    value
="#{scrollerBean.people}" var="pl" width="500">
                    
<h:column>
                        
<h:outputText value="#{pl.name}" />
                    
</h:column>
                    
                    
<h:column>
                        
<h:outputText value="#{pl.age}" />
                    
</h:column>
                    
                    
<h:column>
                        
<h:outputText value="#{pl.birthday}" >
                            
<f:convertDateTime pattern="yyyy-MM-dd"/>
                        
</h:outputText>
                    
</h:column>
                    
                    
<h:column>
                        
<h:commandButton value="Test" actionListener="#{scrollerBean.testListener}" />
                    
</h:column>
                
</h:dataTable>
            
</q:scroller>
        
</h:form>

    看到组件所绑定的方法了吗:bind="#{scrollerBean.loadData}" ,后台代码只要实现一个这样的方法进行绑定就可以。

    后台java代码

public PageModel loadData(long start) {
        
// 设置自己的pageSize
        int pageSize = 10;
        
// 模拟,从DB中获取总记录数
        long total = getTotalCount();
        
// 模拟从DB中获取一些数据,从start起pageSize条记录
        ArrayList<Person> pageData = getFromDatabase(start, pageSize);
        
// 把这几个信息封装成PageModel返回,OK
        PageModel pm = new PageModel();
        pm.setPageData(pageData);
        pm.setPageSize(pageSize);
        pm.setTotal(total);
        
return pm;
    }

    你可能不明白start这个参数是怎么来的,这是scroller组件计算出来后给你的,当第一次加载页面时它会是0,它代表着现在需要从数据库中的第几条数据读取记录,你只要根据start,再配合你自己设置的pageSize从数据库获取一页数据返回给scroller组件就可以。返回类型是PageModel,这是QFaces组件包中的类。只是非常简单的要求三个数据而已,一个当前页的数据,一个总记录数,一个pageSize.组件根据这三个数据可计算,并且渲染一个scroller翻页导航。这还不是整个组件的完整面貌,它会变得更好的。

    我很喜欢这个项目:)

    最近又对QFaces作了大幅调整,调整了URL获取资源的方式,QFaces.js拆分成了两个文件QFaces-gen,QFaces-faces,命名空间也作了一些调整。

    tree组件修正了一些bug,并提高了友好性。inputHelp修正了在谷歌浏览器下的错位问题,同时修正了上下左右键不能使用的问题。联动组件现在的工作方式仍然显得太积极,需要作一些调整。还有很多可以继续改进的。

相关内容
赞助商链接