primefaces commandbutton更新属性在wildfly 15中仅起作用一次

primefaces commandbutton更新属性在wildfly 15中仅起作用一次,primefaces,jsf-2,wildfly,Primefaces,Jsf 2,Wildfly,我有一个简单的xhtml,它只包含一个commandbutton。当您按下那个commandButton时,它在一个支持bean中调用一个打印字符串的方法,仅此而已 问题是commandbutton只在您第一次按下它时调用支持bean的方法 服务器日志或chrome控制台中未显示任何错误 同样的例子在tomcat上非常有效 如果我删除update=“form\u test” xhtml: <?xml version="1.0" encoding="UTF-8"?> <!DO

我有一个简单的xhtml,它只包含一个commandbutton。当您按下那个commandButton时,它在一个支持bean中调用一个打印字符串的方法,仅此而已

问题是commandbutton只在您第一次按下它时调用支持bean的方法

  • 服务器日志或chrome控制台中未显示任何错误

  • 同样的例子在tomcat上非常有效

  • 如果我删除
    update=“form\u test”

xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"           
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">

<h:head> 
    <title>test</title>
</h:head>

<h:body style="background-color:black;" >

<h:form id="form_test">
    <p:commandButton 
    update="form_test"
    value="test agogo"
    action="#{testBean.test}"/>     
</h:form>

</h:body>
</html>
@ManagedBean
@SessionScoped
public class TestBean {
    public String test() {
        System.out.println("--- you pressed a button");
        return null;
    }   
}

升级到pf7.0似乎可以解决这个问题。但是,此解决方案可能不适合实际项目,因为以前版本中的许多接口会发生变化,您可能需要进行大量代码重构。

从PrimeFaces 1.0升级到7.0是实际项目的最佳解决方案。还有一个
h:commandButton
,里面有
f:ajax
,它能工作吗?(我希望是非主题)您的JSF名称空间是“错误的”或JSF2.3,请更新它们。您的bean注释也不推荐;-)因此,升级更多的东西是最好的,如果你在tomcat上部署100%相同的项目,你要么在war中有JSF实现,要么在其他地方配置它。这对于现实生活中的项目来说是非常重要的信息。您是否尝试过在开发模式下运行?