Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Primefaces动态列,以编程方式_Java_Jsf_Primefaces - Fatal编程技术网

Java Primefaces动态列,以编程方式

Java Primefaces动态列,以编程方式,java,jsf,primefaces,Java,Jsf,Primefaces,我正在使用Primefaces重写一个(非常)大而旧的Richfaces应用程序。现在有一种情况,我得到两个列表,一个是列名列表,另一个是应该表示为行的对象列表 该对象如下所示: public class AVeryGenericThingThatIDoNotLike { Object[] values; //Other parameters that I dont care about } 当我应该显示它时,我希望它将值[0]映射到第一列,将值[1]映射到第二列,依此类推 我

我正在使用Primefaces重写一个(非常)大而旧的Richfaces应用程序。现在有一种情况,我得到两个列表,一个是列名列表,另一个是应该表示为行的对象列表

该对象如下所示:

public class AVeryGenericThingThatIDoNotLike {
    Object[] values;
    //Other parameters that I dont care about
}
当我应该显示它时,我希望它将值[0]映射到第一列,将值[1]映射到第二列,依此类推

我看过primefaces showcase,其中有一个动态列的示例,但我尝试过,当我不知道可以存在哪些列时,我无法让它工作。我不知道这一点的原因是,这些列是由一个数据库决定的,该数据库包含一行,该行表示应该存在哪些列,并且这些列可以更改,因此我不能像showcase示例中那样构建一个类以使所有列都可用

有人能给我指点吗?这件事我已经坚持了好几天了,我真的需要帮助


编辑:现在它有点像是在使用Laabidi Raissi的解决方案。我现在的问题是,对于某些列,我希望呈现按钮和命令链接。使用这种方法,我只能获取字符串,如果我尝试返回像CommandButtons这样的对象,它只会打印java对象哈希。

如果您使用的是JSF2,那么我认为这个解决方案可能适合您。首先,在托管bean中,从DB(动态)构建列列表,然后:

<p:columns value="#{yourManagedBean.listOfColumnsFromDB}"  var="column" columnIndexVar="colIndex">  
  <f:facet name="header"> #{column}</f:facet>
  <h:outputText value="#{yourManagedBean.values[colIndex]}" />
</p:columns>
假设您想要第5列中的commandButton

这就是你要找的吗


希望这能有所帮助

表中的每一行是否都有不同大小的“值”?不,所有行都有相同数量的值。PF showcase中的示例具体如何?只需为
的值提供一个动态列表?或者您看到的是错误的showcase示例,或者是过于复杂了?回到
,您可能会发现有助于获得一些见解。@BalusC,请查看主窗口中的编辑question@Laabodo莱西,请看一下主要问题中的编辑请看我编辑的答案。PS:我喜欢你写我的名字的方式。我为名字担心:P如果所有列都有命令按钮或链接,你的解决方案就会起作用。问题是它是混合的,一些普通文本、一些按钮和一些链接=/然后,您可以使用呈现属性和colIndex值,请参阅更新的答案,这可能会起作用!将在测试时更新结果!
<h:commandButton value="#{yourManagedBean.values[colIndex]}" action="#{yourManagedBean.someActionThatTakesAParam(colIndex)}" rendered="#{colIndex == 4}"/>