Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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
Java 如何刷新以前插入到jsf中的表单值?_Java_Javascript_Jquery_Jsf_Primefaces - Fatal编程技术网

Java 如何刷新以前插入到jsf中的表单值?

Java 如何刷新以前插入到jsf中的表单值?,java,javascript,jquery,jsf,primefaces,Java,Javascript,Jquery,Jsf,Primefaces,在我的应用程序中,我在单击提交按钮时将表单数据添加到数据库中。但问题是,当用户刷新页面时,数据会再次添加到数据库中,以此类推 什么可以解决这个问题,请一些机构给我这个问题的好链接/解决方案 非常感谢 代码: <h:commandButton value="Submit" action="#{co.createAction()}" /> public String createAction() { if (login.registerUser().equals("success"

在我的应用程序中,我在单击提交按钮时将表单数据添加到数据库中。但问题是,当用户刷新页面时,数据会再次添加到数据库中,以此类推

什么可以解决这个问题,请一些机构给我这个问题的好链接/解决方案

非常感谢

代码:

<h:commandButton value="Submit" action="#{co.createAction()}" />

public String createAction() {
  if (login.registerUser().equals("success")) {
    return "index?faces-redirect=true";
  } else {
    return "failure";
  }
}

public String registerUser() {
  if (serv.createRegUser(reg)) {
    return "success";
  } else {
    return "failed";
  }
}

public boolean createRegUser(Registration reg) { 
  try { 
    initJpa(); 
    regJpa.create(reg); 
    return true; 
  } catch(Exception e) { 
    e.printStackTrace(); 
    return false; 
  } 
}

还要避免在JSF中使用void方法。如果要返回到同一页面,请使用同一页面viewid。 请尝试输入以下代码:

public String submit() {
    // ...

    return "viewid?faces-redirect=true";
}

参考来自此。

这可能是由以下几个因素造成的:

1-每次显示视图时,都会调用在数据库中添加项的函数

这可能是由上述方法上的@PostConstruct注释引起的。这也可能是由从视图调用此方法的元素引起的

2-在数据库中插入对象的方法是持久化2个对象

3-您的表格已提交多次


4-如果观察到数据库可能有问题,并且在刷新时向数据库添加数据,则插入了第二个对象。要获得更详细的诊断,请向我们提供更多相关的详细信息,如代码等。以下是我的代码公共字符串createAction{iflogin.registerUser.equalssuccess{return index?faces redirect=true;}else{return failure;}}}公共字符串registerUser{ifserv.createRegUserreg{return success;}else{return failed;}`public boolean createRegUserRegistration reg{try{initJpa;regJpa.createreg;return true;}catchException e{e.printStackTrace;return false;}}`@user3231655所以即使在10分钟过去之后,您仍然不介意编辑您的问题并在那里添加代码,而不是在注释中使其不可读?非常感谢,我会记住这一点。这是我的代码公共字符串createAction{iflogin.registerUser.equalssuccess{return index?faces redirect=true;}else{return failure;}公共字符串registerUser{ifserv.createRegUserreg{return success;}else{return failed;}}{public boolean createRegUserRegistration reg{try{initJpa;regJpa.createreg;return true;}catchException e{e.printStackTrace;return false;}`