jsf我可以从bean关闭浏览器选项卡吗?

Luk*_*cky 5 java jsf

我的应用程序是管理软件,为了方便用户,我想让他们打开多个标签,一次更改多个记录的参数.但在完成他们正在做的任何事情之后,标签保持打开状态,我得到了一些抱怨.基本上我的问题是:

如果有办法关闭浏览器选项卡,发送请求到我的支持bean中的方法?例如:

JSF页面:

<h:commandButton value="Public score"
   action="#{assignmentBean.publicSelected()}">                        
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)

豆法:

public void publicSelected() {
    application.setAssignmentStatus(done);
    dataAccess.mergeEntity(application);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在合并命令后添加一些东西并关闭激活方法的浏览器选项卡?感谢帮助

完整的解决方案代码我很难混合使用JS和JSF,所以对于任何一个也不好的人我都会使用Tiago Vieira Dos Santos提示发布完整的代码解决方案.

现在我的按钮代码如下所示:

<h:commandButton value="Public score"
   action="#{myBean.doThings}">    
   <f:ajax execute="@this" onevent="pop"/>                    
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)

加上页面底部我添加了如下代码:

<script type="text/javascript">
    function pop(data){
        if(data.status == "success"){
            window.close();
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

现在在方法完成后必须完成的操作窗口关闭.

Tia*_*tos 3

我认为您可以使用 javascript 命令 Window.close() 然后您可以将其放在 oncomplete 标记上或使用 FacesContext 调用您的托管 bean。

请参阅如何关闭浏览器窗口中的当前选项卡?