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
Ajax 编辑可编辑数据表(JSF2)时丢失数据_Ajax_Jsf_Jsf 2_Datatable - Fatal编程技术网

Ajax 编辑可编辑数据表(JSF2)时丢失数据

Ajax 编辑可编辑数据表(JSF2)时丢失数据,ajax,jsf,jsf-2,datatable,Ajax,Jsf,Jsf 2,Datatable,我开始编写一本小食谱。因此,我创建了一个页面来添加一些菜单,菜单应该描述如何一步一步地烹饪菜单。 我有一个包含菜单集列表的数据表。用户可以单击命令链接添加/删除新步骤。Bean添加或删除列表的MenuStep,并使用ajax重新呈现datatable。这很好,除了我丢失了为步骤提供给两个inputText字段的所有数据。在添加或删除数据表的一行后,它们都是空的 我希望有人能帮助我。 下面你可以看到我的代码。如果您需要更多信息,请告诉我 致以最良好的祝愿, 本杰明 这是我的XHTML(它是模板的一

我开始编写一本小食谱。因此,我创建了一个页面来添加一些菜单,菜单应该描述如何一步一步地烹饪菜单。 我有一个包含菜单集列表的数据表。用户可以单击命令链接添加/删除新步骤。Bean添加或删除列表的MenuStep,并使用ajax重新呈现datatable。这很好,除了我丢失了为步骤提供给两个inputText字段的所有数据。在添加或删除数据表的一行后,它们都是空的

我希望有人能帮助我。 下面你可以看到我的代码。如果您需要更多信息,请告诉我

致以最良好的祝愿, 本杰明

这是我的XHTML(它是模板的一部分):

我解决了

<h:commandButton styleClass="safe" value="Zutat hinzufügen" action="#{MenuCreation.addInTakeRow}">
    <f:ajax disabled="true" execute="@this" render="@form"/>
</h:commandButton>


disabled=true对于这些ajax命令中的每个命令。

对于XHTML代码感到抱歉。这不是全部代码,在降价方面有一些问题:/编辑消息时,请指向右侧栏。这里解释了格式规则。基本上,只需将代码缩进4个空格即可。您也可以通过选择代码,然后按工具栏中的
010101
按钮或
Ctrl+K
key.THX BalusC来完成此操作,这很有效!现在每个人都可以读代码了……;)
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package de.charite.ne.server.admin.menue;

import de.charite.ne.server.persistence.menu.MenuStep;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author benjamin
 */
@ManagedBean(name = "MenuCreation")
@SessionScoped
public class MenuCreationBean implements Serializable{
    private List<MenuStep> menuSteps = new ArrayList<MenuStep>();

    @PostConstruct
    public void init() {
        MenuStep menuStep = new MenuStep();
        menuStep.setStepName("Neuer Schritt...");
        menuStep.setTask("Beschreibung des Schrittes...");
        menuSteps.add(menuStep);
    }

    public void addMenuStepRow() {
        MenuStep menuStep = new MenuStep();
        menuSteps.add(menuStep);
    }

    public void removeMenuStepRow(MenuStep menuStep) {
        menuSteps.remove(menuStep);
    }

    public List<MenuStep> getMenuSteps() {
        return menuSteps;
    }

    public void setMenuSteps(List<MenuStep> menuSteps) {
        this.menuSteps = menuSteps;
    }

}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package de.charite.ne.server.persistence.menu;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 *
 * @author benjamin
 */
@Entity
@Table(name = "menustep")
public class MenuStep implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private int sequenceNumber;
    private String stepName;
    private String task;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public int getSequenceNumber() {
        return sequenceNumber;
    }

    public void setSequenceNumber(int sequenceNumber) {
        this.sequenceNumber = sequenceNumber;
    }

    public String getStepName() {
        return stepName;
    }

    public void setStepName(String stepName) {
        this.stepName = stepName;
    }

    public String getTask() {
        return task;
    }

    public void setTask(String task) {
        this.task = task;
    }
}
<h:commandButton styleClass="safe" value="Zutat hinzufügen" action="#{MenuCreation.addInTakeRow}">
    <f:ajax disabled="true" execute="@this" render="@form"/>
</h:commandButton>