JSF动态显示列,rich:columns的使用

本文详细介绍了RichFaces中Rich:Columns组件的使用方法及其注意事项。解释了如何通过Rich:Columns展示表格数据,并给出了具体的代码示例,包括如何设置表格的数据源、如何定义列头等关键信息。

关于 rich:columns

<rich:dataTable  value="#{cols.count}">
<rich:columns value="#{cols.header}" var="header">
<f:facet name="header">
<h:outputText value="#{header}"/>
</f:facet>

<h:outputText value="#{cols.data[header].name}"/>
</rich:columns>
</rich:dataTable>

@Name("cols")
public class Cols {

public Map<String,Data> getData(){
Map<String,Data> result = new LinkedHashMap<String,Data>();
result.put("一", new Data("张三","111"));
result.put("二", new Data("李四","222"));
result.put("三", new Data("王五","333"));
return result;
}

public List<Object> getCount(){
return Arrays.asList(new Object[getData().size()]);
}

public static class Data{
String name;
String age;
public Data(String name, String age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public String getAge() {
return age;
}

}

public List<String> getHeader(){
return Arrays.asList(new String[]{"一","二","三"});
}
}

注意,首先对于一个dataTable,必须有 value ,且 value的size决定显示的行数,所以<rich:dataTable  value="">   是必须的,作用是确定要显示的行数,var不是必须的,因为可能用不到

其次 rich:columns 一般需要和header或footer关联,所以其中数据最好为map或者数组(richfaces的demo用的是数组),其中 有index="" 属性表示数据

再补充几点
1.rich:columns是在jsf最后阶段解析成rich:column的,它没有后台对应的jsf组件类(即没有HtmlColumns这个类)
2.对于需要rich:columns的地方也可以用<c:forEach>里面套用<rich:column>解决
3.rich:columns里面的style和styleClass其实是对于里面的每个rich:column起作用的,可以用来动态的改变column的style

文章出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值