Jsf a4j:命令按钮不工作。单击时未执行任何操作

Jsf a4j:命令按钮不工作。单击时未执行任何操作,jsf,richfaces,Jsf,Richfaces,我在学习RichFaces。将a4j:commandButton添加到.xhtml。下面是我的.xhtml代码 <!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:ui="http://jav

我在学习RichFaces。将a4j:commandButton添加到.xhtml。下面是我的.xhtml代码

<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j">
   <h:head>
   </h:head>

   <h:body>
    <h:form>
     <rich:panel>
         <h:panelGrid column="2">
            <h:inputText value="#{echoBean.name}"/>
            <h:outputText value="#{echoBean.name}" id="echoTxt" />
            <h:outputText value="Count" />
            <h:outputText id="countTxt" value="#{echoBean.count}" />
         </h:panelGrid>
         <a4j:commandButton value="Send" actionListener="#{echoBean.incrementCount}"  reRender="echoTxt, countTxt"/>
     </rich:panel>
     </h:form>
   </h:body>
</html>
我的托管Bean代码是

/** * */

我知道这与国家管理问题有关。我的猜测正确吗?我还错过了什么吗


谢谢

以下是解决或检查问题解决方案的一些步骤。请注意,这不是完整的解决方案,因为您的项目信息较少(您的支持bean不在这里)

  • 尝试“h”或“t”标记并尝试运行它
  • 检查你的ManageBean你提到你的bean范围把它放在sessionscope中

  • 如果这不起作用,那么请随您的支持bean和faces config.xml一起提供这些步骤来解决或检查您的问题解决方案。请注意,这不是完整的解决方案,因为您的项目信息较少(您的支持bean不在这里)

  • 尝试“h”或“t”标记并尝试运行它
  • 检查你的ManageBean你提到你的bean范围把它放在sessionscope中

  • 如果这不起作用,那么请随您的支持bean和faces config.xml一起提供。您正在为命令按钮使用
    actionListener
    ,您应该使用
    action
    使其起作用

    <a4j:commandButton value="Send" action="#{echoBean.incrementCount}"
        reRender="echoTxt, countTxt"/>
    

    echoBean.name
    在bean中设置了两次,第一次设置为inputText值(您输入的文本),第二次设置为outputText值(null)。如果您想要这种行为,您应该查看我在帖子中添加的showcase链接,并分析它必须如何执行。

    如果您使用
    actionListener
    作为命令按钮,您应该使用
    action
    使其正常工作

    <a4j:commandButton value="Send" action="#{echoBean.incrementCount}"
        reRender="echoTxt, countTxt"/>
    

    echoBean.name
    在bean中设置了两次,第一次设置为inputText值(您输入的文本),第二次设置为outputText值(null)。如果您想要这种行为,您应该查看我在帖子中添加的showcase链接,并分析如何执行该操作。

    服务器日志中有错误/firebug吗?@Daniel-服务器日志中没有错误。实际上,我希望文本字段中给定字符串的长度显示在OutputText中。这是发生在普通命令按钮上。但是如果我使用a4j:commandButton,它根本不工作。服务器日志/firebug中有错误吗?@Daniel-服务器日志中没有错误。实际上,我希望文本字段中给定字符串的长度显示在OutputText中。这是发生在普通命令按钮上。但是,如果我使用a4j:commandButton,它根本不起作用。bean的范围在这里不是问题,因为即使在使用
    ApplicationScope
    的bean上也可以触发操作。bean的范围在这里不是问题,因为即使在使用
    ApplicationScope
    的bean上也可以触发操作。谢谢您的回复。看着你的回复,我试着添加动作,而不是actionListener。它已执行此单击事件,但正在引发异常。当然,我不认为这与此有关,但你可以在这方面帮助我。请查看我在问题中关于托管Bean和错误跟踪的更新。。。。这就是错误背后的原因,然后我在想我使用h:commandButton时它是如何工作的。然后我自己回答说,当使用h:commandButton时,它正在刷新整个页面,以便这些状态值可用。但是对于a4j:状态是如何更新的?谢谢你的回复。看着你的回复,我试着添加动作,而不是actionListener。它已执行此单击事件,但正在引发异常。当然,我不认为这与此有关,但你可以在这方面帮助我。请查看我在问题中关于托管Bean和错误跟踪的更新。。。。这就是错误背后的原因,然后我在想我使用h:commandButton时它是如何工作的。然后我自己回答说,当使用h:commandButton时,它正在刷新整个页面,以便这些状态值可用。但在a4j的情况下:状态是如何更新的?
    <a4j:commandButton value="Send" action="#{echoBean.incrementCount}"
        reRender="echoTxt, countTxt"/>
    
    <h:inputText value="#{echoBean.name}"/>
    <h:outputText value="#{echoBean.name}" id="echoTxt" />