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
在JSF中只使用一个commandbutton保存两个bean的数据_Jsf_Jsf 2_Primefaces - Fatal编程技术网

在JSF中只使用一个commandbutton保存两个bean的数据

在JSF中只使用一个commandbutton保存两个bean的数据,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我正在尝试用JSF和PrimeFaces创建一个Java项目 我有两张桌子。数据库中具有一对一关系的人员和地址 当我用Netbeans构建项目时,它创建了两个独立的create.xthml文件。一个是地址,一个是人。我想把它们混合在一个新的xhtml文件中 我的问题是。。如何用一个commanbutton actionlistener保存两个bean的数据 我从两个create.xhtml中得到了它 <p:commandButton actionListener="#{persona.cr

我正在尝试用JSF和PrimeFaces创建一个Java项目

我有两张桌子。数据库中具有一对一关系的人员和地址

当我用Netbeans构建项目时,它创建了两个独立的create.xthml文件。一个是地址,一个是人。我想把它们混合在一个新的xhtml文件中

我的问题是。。如何用一个commanbutton actionlistener保存两个bean的数据

我从两个create.xhtml中得到了它

<p:commandButton actionListener="#{persona.create}" value="#{bundle.Save}" />
<p:commandButton actionListener="#{address.create}" value="#{bundle.Save}" />

我只需要一个按钮。

对此不确定,但您可以试试

<p:commandButton action="#{address.create}" actionListener="#{persona.create}" value="#{bundle.Save}" />

您可以在第一个bean中调用第二个bean,并在其中调用create方法

public class address {
    public void create() {
        Persona persona = (Persona) FacesContext.getCurrentInstance().getApplication().getExpressionFactory()
            .createValueExpression(FacesContext.getCurrentInstance().getELContext(), "#{Persona}", Persona.class)
            .getValue(FacesContext.getCurrentInstance().getELContext());
        persona.create();
}

即使我不能很好地确认您的做法,您也可以通过可能的重复来实现这一点,为什么不为xhtml创建一个bean呢?