当前位置:  开发笔记 > 编程语言 > 正文

PrimeFaces commandButton在confirmDialog中没有调用backing bean

如何解决《PrimeFacescommandButton在confirmDialog中没有调用backingbean》经验,为你挑选了1个好方法。

我有一个PrimeFaces数据表,显示一组用户,每行都有一个要删除的commandLink.单击链接时,将显示confirmDialog,其中显示"是"按钮,该按钮应调用辅助bean中的"删除"方法.不幸的是,没有调用此方法,只是隐藏了对话框.设置链接中的参数是因为我在调试器中看到了它.

这是我的页面:




Manage users 


    
        
            
                
                    
                        
                          
                        
                            
                            
                                  
                             
                            
                                  
                             
                            
                                  
                            
                            
                                
                             
                            
                                
                                    
                                  
                              
                            
                                  
                            
                            
                                
                            

                            
                                
                                    
                                
                            
                            
                                
                                    
                                
                                                         
                        

                        
                            
                            
                        
                    
                    
                        
                        
                            
                                  
                            
                            
                                  
                            
                        
                    
                
            
    
    

支持豆方法:

public void deleteUser(ActionEvent event) {
    if (null != currentUser) {
        // check if userID is set and delete
        System.out.println("delete user with id " + currentUser.getId());
        userService.deleteUser(currentUser);
        currentUser = new User();
    }
}

我检查过,我没有嵌套表单,因为这是最常见的情况,因为没有调用支持bean ...

这是我的模板文件:

CommonLayout.xhtml




 

  



 

CommonHeader.xhtml:





  

    
        
             
Logout

CommonContent.xhtml:





  

    
        
                
        
    


LeftMenu.xhtml:





  

    
        
        
            
                
                    
                
            
            
    
    


我正在使用PrimeFaces 3.4和JSF 2.0



1> BalusC..:

在DOM准备期间,这将导致确认对话框的HTML表示被JavaScript重定位到HTML 元素的末尾.

然而,这导致确认对话框的HTML表示不再在任何形式内.因此,没有提交任何表单并且没有发送请求参数,因此JSF将无法识别该操作.

您需要自己给出确认对话框.


    
        ...
    

并且为了避免在维护期间混淆(嵌套表单是非法的),我还建议将该组件移动到模板的末尾,至少 "外部"之后.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有