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
Jsf PrimeFaces,命令按钮动作不起作用_Jsf_Primefaces_Spring Webflow - Fatal编程技术网

Jsf PrimeFaces,命令按钮动作不起作用

Jsf PrimeFaces,命令按钮动作不起作用,jsf,primefaces,spring-webflow,Jsf,Primefaces,Spring Webflow,该项目使用SpringWebFlow和JSF(PrimeFaces)。我有一个名为“manageArticle.xhtml”的页面。在页面上,如果用户单击“编辑”按钮,将显示一个p:面板,其中包含当前文章对象内容。将项目对象传递给视图,如下所示 <transition on="edit_article" to="manageArticles"> <evaluate expression="articles.selectedRow" result="flo

该项目使用SpringWebFlow和JSF(PrimeFaces)。我有一个名为“manageArticle.xhtml”的页面。在页面上,如果用户单击“编辑”按钮,将显示一个p:面板,其中包含当前文章对象内容。将项目对象传递给视图,如下所示

    <transition on="edit_article" to="manageArticles">
        <evaluate expression="articles.selectedRow" result="flowScope.selectedArticle" />
        <set name="flashScope.editMode" value="'edit'" />
      </transition>
    <p:commandButton id="editArticleSave" action="${articleManager.saveArticle(selectedArticle)}" ajax="false" value="Save" />

但是,当我单击save按钮时,没有调用该操作。我在函数saveArticle中设置了一个断点,但它没有中断。该操作被忽略。有人知道发生了什么吗?非常感谢。

我改为“#”,但它不起作用。如果在操作定义中输入了错误的函数名,如'articleManager.dummy()',则不会引发异常,也不会出现错误。它只是被绕过了。只是一个更新,命令按钮是在面板中定义的。当editMode为“编辑”时,将呈现面板:rendered=“#{editMode=='edit'}”。如果删除渲染属性,则调用该操作。有人知道为什么会发生这种情况吗?在普通的JSF中,您可以通过将bean放在视图范围中来解决它。然而,我完全不知道春天是如何在这里发挥作用的。另见答案第5点:一位同事昨天遇到了同样的问题。这是由BalusC回答的第7点引起的:事先有一个ajax请求。这只是一个想法,因为问题描述听起来很熟悉。谢谢大家的时间和帮助。我花了一段时间才明白BalusC的链接是怎么说的。是的,这就是重点。在我的例子中,在用户单击“保存”按钮并提交之后,JSF重新检查了呈现的属性,该属性为“false”。因此,在完全不渲染面板及其子组件时,将忽略action属性。巴卢斯如果你能将你的评论作为答案,那么我会标记它。
    @Service("articleManager")
    public class ArticleManagerImpl implements ArticleManager{
        // inject dao ...
        @Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
        public void saveArticle(Article article) {
            articleDao.save(article);   
        }
    }