所以我有一颗 bean
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 或任何可单击的内容,以导航到另一个页面并显示在该特定行变量中找到的 MySubClassObject 列表的另一个类似表。
有没有办法将 var="Class"传递到 url 目标,以便下一个表可以访问它(这是所需的逻辑,我知道确切的执行流程的答案是否定的,什么我正在寻找的是如何正确实现相同的功能)?
非常感谢!
最佳答案
您可能需要类似的东西:
<p:commandButton value="Open Sub Class"
action="#{MyBean.selectClass(Class)} />
在“MyBean”中,您必须编写如下内容:
public String selectClass(MyClassObject obj){
this.selectedObj = obj;
return "/faces/pages/SomeOtherPage.xhtml"
}
在这里,您可以通过#{MyBean.selectedObj}访问“var=Class”。
这里一件重要的事情是 MyBean 的范围。看起来不错。
关于java - JSF 通过 session 传递 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40693886/