java jsf table_JSF学习之DataTable介绍

在Web应用中,html表格常用于放置内容。JSF允许使用h:dataTable标签来放置组件,其遍历数据来创建html表格。

ca75c07623e1b494fee67e8f316fc310.gif

1fa987a29c6482f53d401256f96355eb.png

1

4f1150b881333f12a311ae9ef34da474.png

<

h:dataTable

value

="#{item}"

var

="item"

>

2

4f1150b881333f12a311ae9ef34da474.png

<

h:column

><

h:outputText

value

="#{item.name}"

/>

h:column

>

3

4f1150b881333f12a311ae9ef34da474.png

<

h:column

><

h:outputText

value

="#{item.another}"

/>

h:column

>

4

4f1150b881333f12a311ae9ef34da474.png

h:dataTable

>

value属性表示所要遍历的数据,其可以是下列值之一:数组、List、java.sql.List实例、javax.servlet.jsp.jstl.Result实例、javax.faces.model.DataModel实例。在每次遍历之前,创建一个请求范围内的变量,并使用var属性来命名。当遍历时,它将数组、列表、结果集等中的每个项目都放到该标签的正文体中,使用var属性指定的名称来引用。

正如上例所显示的那样,h:dataTable标签的正文体只包含h:column标签,除了可

选的标题和脚注组件之外,每列都可以包含无数的组件。任何时候都可以在有自组

建的组件内部指定模板文件(即不是JSF标签的其他东西),但必须将这些模板文

本封装到f:verbatim标签的正文体内或者使用h:outputText来产生该模板文本。例如:

ca75c07623e1b494fee67e8f316fc310.gif

1fa987a29c6482f53d401256f96355eb.png

1

4f1150b881333f12a311ae9ef34da474.png

<

h:column

>

2

4f1150b881333f12a311ae9ef34da474.png

<

h:outputText

value

="#{item.name}"

/>

3

4f1150b881333f12a311ae9ef34da474.png

<

f:verbatim

>

,

f:verbatim

>

4

4f1150b881333f12a311ae9ef34da474.png

h:column

>

使用f:facet来为表格添加标题和脚注,如:

ca75c07623e1b494fee67e8f316fc310.gif

1fa987a29c6482f53d401256f96355eb.png

1

4f1150b881333f12a311ae9ef34da474.png

<

h:column

>

2

4f1150b881333f12a311ae9ef34da474.png

<

f:facet

name

="header"

><

h:outputText

value

="#{msgs.nameColumn}"

/>

f:facet

>

3

4f1150b881333f12a311ae9ef34da474.png

<

f:facet

name

="footer"

><

h:outputText

value

="#{msgs.footerColumn}"

/>

f:facet

>

4

4f1150b881333f12a311ae9ef34da474.png

h:column

>

要在表格的标题和脚注中添加多个组件,必须在h

tongue.gif

anelGroup标签中将它们分成组,或者使用h

tongue.gif

anelGrid或h:dataTable来将它们放到一个容器组件中。如果在一个facet中放置多个组件,只会显示第一个组件。

可以向表格中添加任何我们所需要的组件,并使用rendered属性来进行有条件的呈现、处理事件等。

使用dataTable实例: 编辑表格单元—只需提供所需要编辑的输入组件,单击复选框来编辑行,然后单击保存修改按钮来保存更改。

程序清单1 index.jsp

ca75c07623e1b494fee67e8f316fc310.gif

1fa987a29c6482f53d401256f96355eb.png1

4f1150b881333f12a311ae9ef34da474.png24f1150b881333f12a311ae9ef34da474.png34f1150b881333f12a311ae9ef34da474.png44f1150b881333f12a311ae9ef34da474.png54f1150b881333f12a311ae9ef34da474.png64f1150b881333f12a311ae9ef34da474.png74f1150b881333f12a311ae9ef34da474.png84f1150b881333f12a311ae9ef34da474.png94f1150b881333f12a311ae9ef34da474.png104f1150b881333f12a311ae9ef34da474.png114f1150b881333f12a311ae9ef34da474.png124f1150b881333f12a311ae9ef34da474.png134f1150b881333f12a311ae9ef34da474.png144f1150b881333f12a311ae9ef34da474.png154f1150b881333f12a311ae9ef34da474.png164f1150b881333f12a311ae9ef34da474.png174f1150b881333f12a311ae9ef34da474.png184f1150b881333f12a311ae9ef34da474.png194f1150b881333f12a311ae9ef34da474.png204f1150b881333f12a311ae9ef34da474.png214f1150b881333f12a311ae9ef34da474.png224f1150b881333f12a311ae9ef34da474.png234f1150b881333f12a311ae9ef34da474.png244f1150b881333f12a311ae9ef34da474.png254f1150b881333f12a311ae9ef34da474.png264f1150b881333f12a311ae9ef34da474.png274f1150b881333f12a311ae9ef34da474.png284f1150b881333f12a311ae9ef34da474.png294f1150b881333f12a311ae9ef34da474.png304f1150b881333f12a311ae9ef34da474.png314f1150b881333f12a311ae9ef34da474.png324f1150b881333f12a311ae9ef34da474.png

334f1150b881333f12a311ae9ef34da474.png344f1150b881333f12a311ae9ef34da474.png

35 4f1150b881333f12a311ae9ef34da474.png36 4f1150b881333f12a311ae9ef34da474.png37 4f1150b881333f12a311ae9ef34da474.png38 4f1150b881333f12a311ae9ef34da474.png 复选框的值与当前名称是否处于编辑状态相一致,如果处于编辑状态,则该复选框被选中,出现的是输入组件inputText,否则呈现的是输出组件outputText.

程序清单2 messages.properties

4f1150b881333f12a311ae9ef34da474.pngwindowTitle=Editing Table Cells

4f1150b881333f12a311ae9ef34da474.pnglastnameColumn=Last Name

4f1150b881333f12a311ae9ef34da474.pngfirstnameColumn=First Name

4f1150b881333f12a311ae9ef34da474.pngeditColumn=Edit

4f1150b881333f12a311ae9ef34da474.pngalphanumeric=[alpha]

4f1150b881333f12a311ae9ef34da474.pngsaveChangeButtonText=Save Changes程序清单3 Name.java

ca75c07623e1b494fee67e8f316fc310.gif

1fa987a29c6482f53d401256f96355eb.png1

1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifpublicclassName9b8a8a44dd1c74ae49c20a7cd451974e.png{2d18c02628675d0a2c816449d98bda930.pngprivateString first;3d18c02628675d0a2c816449d98bda930.pngprivateString last;4d18c02628675d0a2c816449d98bda930.pngbooleaneditable=false;597e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicName(String first,String last)9b8a8a44dd1c74ae49c20a7cd451974e.png{6d18c02628675d0a2c816449d98bda930.pngthis.first=first;7d18c02628675d0a2c816449d98bda930.pngthis.last=last;8ecedf933ec37d714bd4c2545da43add2.png}9d18c02628675d0a2c816449d98bda930.png//相应的getter/setter方法108f1ba5b45633e9678d1db480c16cae3f.png}114f1150b881333f12a311ae9ef34da474.png程序清单4 TableData.java

ca75c07623e1b494fee67e8f316fc310.gif

1fa987a29c6482f53d401256f96355eb.png1

1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifpublicclassTableData9b8a8a44dd1c74ae49c20a7cd451974e.png{297e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifprivatestaticfinalName[] names=newName[]9b8a8a44dd1c74ae49c20a7cd451974e.png{3d18c02628675d0a2c816449d98bda930.pngnewName("Willian","Dupont",4d18c02628675d0a2c816449d98bda930.pngnewName("Anna","Keeney",5d18c02628675d0a2c816449d98bda930.pngnewName("Maoko","Randor",6d18c02628675d0a2c816449d98bda930.pngnewName("John","Wilson"7ecedf933ec37d714bd4c2545da43add2.png};897e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicName[] getNames()9b8a8a44dd1c74ae49c20a7cd451974e.png{9d18c02628675d0a2c816449d98bda930.pngreturnnames;108f1ba5b45633e9678d1db480c16cae3f.png}}程序清单5 faces-config.xml

ca75c07623e1b494fee67e8f316fc310.gif

1fa987a29c6482f53d401256f96355eb.pngfaces-config.xml配置1

4f1150b881333f12a311ae9ef34da474.png24f1150b881333f12a311ae9ef34da474.png34f1150b881333f12a311ae9ef34da474.pngen44f1150b881333f12a311ae9ef34da474.png54f1150b881333f12a311ae9ef34da474.png64f1150b881333f12a311ae9ef34da474.pngtableData74f1150b881333f12a311ae9ef34da474.pngcom.corejsf.TableData84f1150b881333f12a311ae9ef34da474.pngsession94f1150b881333f12a311ae9ef34da474.png104f1150b881333f12a311ae9ef34da474.png程序清单6 web.xml

ca75c07623e1b494fee67e8f316fc310.gif

1fa987a29c6482f53d401256f96355eb.pngweb.xml配置1

4f1150b881333f12a311ae9ef34da474.png24f1150b881333f12a311ae9ef34da474.pngFaces Servlet34f1150b881333f12a311ae9ef34da474.pngjavax.faces.webapp.FacesServlet44f1150b881333f12a311ae9ef34da474.png54f1150b881333f12a311ae9ef34da474.png64f1150b881333f12a311ae9ef34da474.pngFaces Servlet74f1150b881333f12a311ae9ef34da474.png*.faces84f1150b881333f12a311ae9ef34da474.png

还可以为指定相应行和列的样式,h:dataTable具有指定css类的一些属性,如styleClass(将表格作为一个整体)、headerClass和footerClass(列标题和脚注)、columnClasses和rowClasses(单独的行和列)。 其中rowClasses和columnClasses属性是互斥的,若二者皆指定则会使用columnClasses。

其他应用:数据库表格、表格模型以及分类和筛选等。

posted on 2006-09-27 15:11 土牛小屋 阅读(7195) 评论(5)  编辑  收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值