jsf表格panelGrid

  • 格式:doc
  • 大小:40.50 KB
  • 文档页数:9

jsf表格h:panelGrid 属性详解

2009-04-11 14:49

一.页面布局:

样式表基本概念:

单元格样式: columnClasses="columnClasses1, columnClass2,..." <==>

class="columnClasses1">....

行样式: rowClasses="rowClasses1, rowClasses2" <==>

class="rowClasses1">....

样式: styleClass="" ==

注: 无法实现多个表头单元.

panelGrid 标签学习

这个标签可以用来作简单的组件排版,它会使用HTML表格标签来绘制表格,并将组件置于其中,主要指定columns属性,例如设定为 2:

则自动将组件分作 2 个 column来排列,排列出来的样子如下:

的本体间只能包括JSF组件,如果想要放入非JSF组件,例如简单的样版(template)文字,则要使用 包括住,例如:

Username

Password

这个组件用来将数个JSF组件包装起来,使其看来像是一个组件,例如:

在中包括了两个,这使得< h:panelGrid>在处理时,将那两个看作是一个组件来看待,其完成的版面配置如下所示:

下面转载与/liyong1115/archive/2008/02/27/2125029.aspx

一、初识panelGrid和与之相关的设计元素

panelGrid相当于HTML的表格,在设计中与之相关的组件有panelGrop,与之相配合的CSS

设计元素有styleClass、headerClass、footerClass、rowClasses、columnClasses。这些元

素的有机组合,可以设计出不同的输出画面。

在HTML网页设计中,表格有

制语句来控制输出的表现形式。JSF中的panelGrid虽然与HTML表格相对应,但是二者在设计时

还是有很大差异的。例如我们假设有一个HTML的表如下:

...

...

...

...

则panelGrid与之对应的标记是:

...

...

...

...

它只有外壳标记,没有行控制和列控制标记。

熟悉HTML编程的道人一眼就看出,只有外壳标记,你该怎样控制行或列的输出样式呢?别

急,JSF设计者已经想到了,他们设计出

了styleClass、headerClass、footerClass、rowClasses、columnClasses这些设计元素来控

制行与列的输出样式,其中

styleClass是格式表格总的外观的,如表格的长与宽、外边框样式、表格的背景样式等。

headerClass、footerClass分别是控制表的header和footer的。

rowClasses和columnClasses分别是控制表格的行与列样式的。

还是举个例子说一下,我们有下例:

styleClass="styleClazz"

headerClass="headerClazz"

footerClass="footerClazz"

rowClasses="row1,row2"

columnClasses="column1"

>

这就是一个表格,columns="1",规定这个表只有一列,cellpadding="5"说明了边框外线

与内线的距离是5个像素。这个表由一个头部、一个尾部和中间表身三部分组成。headerClass

是格式头部样式的,footerClass是格式尾部样式的,rowClasses和columnClasses是格式行与

列样式的。 rowClasses="row1,row2"规定了表格的行与行交替使用row1和row2样式类来格式

输出样式,同样,列也是,并且还可以用3个、4个或更多个row3、row4...来依序交替格式输

出样式。

对应的样式类可以像以下这样编写在css文件中:

/*styleClass处于父类的地位,headerClazz,rowClasses等的字体设置取em时,

其在屏幕上显示的大小会参照该类字体的大小设置而放大或缩小*/

.styleClazz{

font-size:1em;

color:blue;

border-style:solid;

border-color:red;

border-width: 1px;

}

.headerClazz{

background-color:#3F536B;

font-family:宋体;

font-size:1.5em;

color:white; text-align:center;

}

.footerClazz{

background-color:#3F536B;

font-family:宋体;

font-size:1.5em;

color:white;

text-align:center;

}

/* 当行样式与列样式都用时,则行样式服从于列样式

边框的颜色需要在columnClasses中定义,

在rowClasses中定义不起作用

*/

.row1{

background-color:#FFFFFF;

}

.row2{

background-color:#C9D3E0;

}

.column1{

border-style:solid;

border-color:red;

border-width: 1px;

}

.column2{

}

你可以用CSS在JSP中的语法将其编写在JSP文件中。

二、panelGrid如何来格式成具有拆分合并样式的表

这要用到panelGroup,它的作用是将封装在内的元件作为一个元件来看待,如果panelGroup

中封装了一个panelGrid,则被封装的表放在其他表中就相当于一个子表。通过panelGroup来封