BaNg@taobao

Just Do It!

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  20 Posts :: -1 Stories :: 202 Comments :: 0 Trackbacks
周二,我兴匆匆去老刘那演示RichFaces的Table控件,可老刘说了,RichFaces太复杂,不适合我们,且还有不少的bug(这些我无法考证:)。于是他拿出一个使用了一堆JSP+Servelet+Bean写的一个表格,跟说我,我很怀疑JSF能做出这个东西来,你使用纯JSF做一个一样的表格组件我就相信JSF能够用在开发平台(注:我是此Eclipse开发平台的兼职架构师)上。我心里琢磨,既然你是用JSP/Servlet搞出来的,而JSF是基于Servlet的技术,怎么可能实现不了呢? 三天做出来!我一直相信,技术在于使用技术的人,而不是技术本身。

下载

先看图吧:



再看看对应的JSF标记

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h
="http://java.sun.com/jsf/html"
    xmlns:f
="http://java.sun.com/jsf/core"
    xmlns:ui
="http://java.sun.com/jsf/facelets"
    xmlns:cby
="http:/www.lifesting.com/jsf">

<ui:composition template="/tpl.xhtml">

    
<ui:define name="pageTitle">表格展示</ui:define>
    
<ui:define name="pageHeader">国家</ui:define>
    
<ui:define name="body">

    
<h:form>
            
<h:panelGrid columns="1">
                
<h:message for="mytable" />
            
</h:panelGrid>
            
<cby:rns text="页面设置" tableFor="mytable" />
            
<cby:filter text="过滤策略" tableFor="mytable" />
            
<cby:delete tableFor="mytable" />
            
<cby:table id="mytable" var="rec" checkable="true" idField="code"
                bean
="Country">
                
<cby:column field="name" sortable="true" filterable="true"
                    width
="200" value="名称">
                    
<h:outputText value="#{rec.wrapped.name}"></h:outputText>
                
</cby:column>
                
<cby:column field="region" sortable="true" filterable="false"
                    width
="100" value="区域">
                    
<h:outputText value="#{rec.wrapped.region}"></h:outputText>
                
</cby:column>
                
<cby:column field="surfaceArea" sortable="false" filterable="true"
                    width
="150" value="表面积">
                    
<h:outputText value="#{rec.wrapped.surfaceArea}"></h:outputText>
                
</cby:column>
                
<cby:column field="population" sortable="true" filterable="true"
                    width
="100" value="人口">
                    
<h:outputText value="#{rec.wrapped.population}"></h:outputText>
                
</cby:column>
                
<cby:ds />
            
</cby:table>
        
</h:form>
    
</ui:define>
</ui:composition>

</html>

因为开发平台最终是以BO为核心,所以此表格组件是通过设置 bean,然后再通过Hibernate来获取数据的。

这个组件除采用JSF +Facelet之外,没有其它页面技术,代码简洁,无抽象,且里面还有注释,初学者可以参考一下。

主要功能:
1 设置column的filterable属性(true/false)来过滤数据(目前实现为左匹配,比如输入Sa,就是Sa开头的)
2 分页导航
3 设置column的sortable属性(true/false)用来对某列进行 正/反 排序
4 改变页记录大小,默认为20条/页
5 设置table的checkable属性为true,表格将会多一列用来选择。
6 可以批量删除被checked的记录。

这个组件只考虑了功能,并没有考虑到美观,如果你觉得可以用,改改它的html属性设置。

安装:

1 附件是一个Maven项目,必须安装有maven。
2 安装MySQL数据库,启动MySQL,运行
create database world
3 找到项目下面的world.sql,假设其路径为/a/b/c/world.sql,使用MySQL的source命令
use world
source /a/b/c/world.sql
4修改项目下的hibernate.cfg.xml中MySQL数据库用户名/密码。
5 执行mvn jetty:run 启动
6 浏览器输入 http://localhost:8080/jsftry/ 就可以看到效果了

关于调试:
1 下载一个Eclipse JEE版本
2  在项目目录下执行 mvn eclipse:clean eclipse:eclipse -DdownloadSources=true -Dwtpversion=1.5
3 在eclipse workspace中import此项目

虽然工作中不用Java很久了,但拿起来玩玩还是觉得Java真的很有生产力。JSF,Hibernate,Maven,Eclipse一个比一个牛比。



posted on 2009-07-04 13:22 Always BaNg. 阅读(2537) 评论(10)  编辑  收藏 所属分类: Java

Feedback

# re: 赌气做了一个JSF Table Component,分享源代码! 2009-07-04 16:45 凡客诚品
但拿起来玩玩还是觉得Java真的很有生产力  回复  更多评论
  

# re: 赌气做了一个JSF Table Component,分享源代码! 2009-07-04 16:51 good
SQL文件有乱码呢,楼主用Latin1编码?用UTF-8的把  回复  更多评论
  

# re: 赌气做了一个JSF Table Component,分享源代码! 2009-07-04 17:47 Always BaNg.
我使用的是Ubuntu 9,默认是UTF-8编码

关于world数据库,也可以在mysql的网站上下载。

google 搜索"mysql sample db",有好几个示例数据如world, sakila等  回复  更多评论
  

# re: 赌气做了一个JSF Table Component,分享源代码! 2009-07-05 12:13 凡客诚品网站
高手!  回复  更多评论
  

# re: 做了一个JSF表格组件,分享源代码![未登录] 2009-07-05 18:12 aaaa
说做不出来的人才让人可笑至极呢!这种人只能算是混事的,技术狗屁不是。  回复  更多评论
  

# re: 做了一个JSF表格组件,分享源代码! 2009-07-07 16:13 小李飞刀
学习了,支持,JSF的扩展是很灵活的,没理由做不出来  回复  更多评论
  

# re: 做了一个JSF表格组件,分享源代码! 2009-11-12 14:15 瞎扯
为什么下载代码报“没有权限错误”呢  回复  更多评论
  

# re: 做了一个JSF表格组件,分享源代码![未登录] 2010-04-13 11:41 zhang
谢谢分享,但是下载不了  回复  更多评论
  

# re: 做了一个JSF表格组件,分享源代码![未登录] 2010-04-13 11:45 zhang
怎样下载  回复  更多评论
  

# re: 做了一个JSF表格组件,分享源代码![未登录] 2011-05-30 20:11 xx
下载不了,哪位可以发一份给我参考下呢
djxx2004@gmail.com  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: