java - JSF 通过 session 传递 POJO

标签 java jsf jsf-2

所以我有一颗 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/

相关文章:

java - android项目文件中有很多文件

jsf - 在复合上使用新的 xmlns.jcp.org 命名空间会导致 java.util.concurrent.ConcurrentHashMap.putIfAbsent 处的 java.lang.NullPointerException

java - 在 JSF primefaces 中上传文件

java - Android - Future.get() 使 UI 卡住

java - 99瓶啤酒的无限递归

java - 如何在 JSF 中设置变量?

java - cellEditor 中的 commandLink 不会触发 action/actionListener

javascript - Primefaces javascript 延迟解析

java - 防止在 Jsf2 中未经登录访问受限页面

Java:获取另一个应用程序的类路径