所以我有一个豆
public class MyBean
{
private List<MyClassObject> myList;
//getters and setters
}
MyClassObject类里面有另一个列表
public class MyClassObject
{
private List<MySubClassObject>mysubList;
//getters and setters
}
然后我有一个JSF页面
<p:dataTable id="xyz" var="Class" value="#{MyBean.myList}">
<f:facet name="header">
MyClassObjects
</f:facet>
<p:column headerText="Prop1">
<h:outputText value="#{Class.prop1}" />
</p:column>
<p:column headerText="Prop2">
<h:outputText value="#{Class.prop2}" />
</p:column>
<p:column headerText="Prop3">
<h:outputText value="#{Class.Prop4}" />
</p:column>
<p:column headerText="Sub Classes">
<p:commandButton value="Open Sub Class" url="/faces/pages/SomeOtherPage.xhtml"/>
</p:column>
</p:dataTable>
现在我的目标是创建一个按钮/ commandButton或任何要点击的东西,它将导航到另一个页面并显示在该特定行var中找到的另一个类似的MySubClassObject列表。
有没有办法将var =“Class”传递给url目标,以便下一个表可以访问它(这是必需的逻辑,我知道确切的执行流程的答案是否定的,什么我正在寻找的是如何正确实现相同的功能)?
非常感谢!
答案 0 :(得分:1)
您可能需要以下内容:
<p:commandButton value="Open Sub Class"
action="#{MyBean.selectClass(Class)} />
在你的MyBean&#39;你必须写下这样的东西:
public String selectClass(MyClassObject obj){
this.selectedObj = obj;
return "/faces/pages/SomeOtherPage.xhtml"
}
在这里,您可以访问&#34; var = Class&#34;通过#{MyBean.selectedObj} 。
这里重要的一点是MyBean的范围。好看。