调用了两次JSF onclick方法(未单击)
这里只有一个带有onclick方法的命令链接:调用了两次JSF onclick方法(未单击),jsf,primefaces,Jsf,Primefaces,这里只有一个带有onclick方法的命令链接: <h:form> <h:panelGroup layout="block" id="ya"> <p:commandLink value="Current value is: #{newClass.counter}" onclick="#{newClass.go()}" update="ya"/> </h:panelGroup> </h:form>
<h:form>
<h:panelGroup layout="block" id="ya">
<p:commandLink value="Current value is: #{newClass.counter}" onclick="#{newClass.go()}" update="ya"/>
</h:panelGroup>
</h:form>
以下是我在服务器日志中看到的内容:
.......
INFO: Initializing Mojarra 2.2.0 ( 20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930) for context '/WebSite'
INFO: Running on PrimeFaces 4.0
INFO: Loading application [WebSite] at [/WebSite]
INFO: WebSite was successfully deployed in 1 654 milliseconds.
INFO: !method go() is called: 1
INFO: !method go() is called: 2
为什么只在页面加载时调用两次方法?
为什么还要点击commandLink两次调用metod?使用commandButton的
actionListener
属性而不是onclick使用commandButton的actionListener
属性而不是onclick使用commandButton的actionListener
属性commandButton而不是onclick
使用commandButton的actionListener
属性而不是onclick根据目前提供的信息,我无法解释双重调用,但我可以断定onclick
属性无意调用bean操作。它旨在表示一些JavaScript代码,这些代码将在HTMLDOM单击事件期间执行。您需要操作
属性。正如每本sane JSF书籍/教程/资源中所示。或者,如果你的代码真的是这样的,就把它扔掉。为了安全起见,我还想暂停一下JSF,先学习一些基本的HTML/JS。您似乎不知道JSF基本上是一个HTML/JS代码生成器。@BalusC,action属性工作正常。谢谢你的回答。我觉得很傻:(我已经学习了HTML和基本JS,但这似乎还不够。根据目前提供的信息,我无法解释双重调用,但我可以看出,onclick
属性并不打算调用bean操作。它旨在表示一些JavaScript代码,这些代码将在HTML DOMclick
事件期间执行。您eedaction
attribute。就像每本理智的JSF书籍/教程/资源中显示的那样。或者,如果你的代码真的是这样的,把它扔远点。为了安全起见,我也会暂停JSF,先学习一些基本的HTML/JS。看来你根本不知道JSF基本上是一个HTML/JS代码生成器。@BalusC,action属性工作正常。谢谢你的回答。我觉得自己好笨:(我已经学习了HTML和基本JS,但这似乎还不够。根据目前提供的信息,我无法解释双重调用,但我可以看出,onclick
属性并不打算调用bean操作。它旨在表示一些JavaScript代码,这些代码将在HTML DOMclick
事件期间执行。您eedaction
attribute。就像每本理智的JSF书籍/教程/资源中显示的那样。或者,如果你的代码真的是这样的,把它扔远点。为了安全起见,我也会暂停JSF,先学习一些基本的HTML/JS。看来你根本不知道JSF基本上是一个HTML/JS代码生成器。@BalusC,action属性工作正常。谢谢你的回答。我觉得自己好笨:(我已经学习了HTML和基本JS,但这似乎还不够。根据目前提供的信息,我无法解释双重调用,但我可以看出,onclick
属性并不打算调用bean操作。它旨在表示一些JavaScript代码,这些代码将在HTML DOMclick
事件期间执行。您eedaction
attribute。就像每本理智的JSF书籍/教程/资源中显示的那样。或者,如果你的代码真的是这样的,把它扔远点。为了安全起见,我也会暂停JSF,先学习一些基本的HTML/JS。看来你根本不知道JSF基本上是一个HTML/JS代码生成器。@BalusC,action属性工作正常。谢谢你的回答。我觉得自己好笨:(我已经学习了HTML和基本JS,但似乎还不够。为什么只在页面加载时调用该方法两次而不是预期的一次?为什么你推荐actionListener
而不是action
?我推荐actionListener
而不是action
,因为函数返回的是无效的。action>在
上,use可用于返回一个可用于导航的字符串。至于为什么会调用两次,我同意你的看法。从提供的信息来看,它可能无法确定。可能还有其他原因。因此,你的意思是操作
不能返回无效
?这是错误的。请参阅also我不是在暗示,建议使用actionListener
而不是action
。这意味着两者都可以使用。action
肯定会返回void。为什么只在页面加载时调用该方法两次而不是预期的一次?为什么建议使用actionListener
ins除了action
?我建议使用actionListener
而不是action
,因为函数返回void。action
用于返回一个字符串,该字符串可用于导航。至于调用两次的原因,我同意您的看法。从提供的信息来看,它可能无法确定d、 可能还有其他原因。所以你是在暗示action
不能返回void
?这是错误的。我也不是在暗示,建议使用actionListener
而不是action
。这意味着两者都可以使用。action
肯定可以返回void。Why是只在页面加载时调用两次而不是预期的一次的方法?为什么建议使用actionListener
而不是action
?我建议使用actionListener
而不是action
,因为函数返回void。action
用于返回可用于导航。至于为什么它会被调用两次,我在这方面与你是一致的。从提供的信息来看,它可能无法确定。可能有
.......
INFO: Initializing Mojarra 2.2.0 ( 20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930) for context '/WebSite'
INFO: Running on PrimeFaces 4.0
INFO: Loading application [WebSite] at [/WebSite]
INFO: WebSite was successfully deployed in 1 654 milliseconds.
INFO: !method go() is called: 1
INFO: !method go() is called: 2