有条件地启动JSF对话框

Nav*_*d S 4 java jsf primefaces

如何根据某些条件启动对话框?我正在使用primefaces组件.

Cag*_*ici 10

使用3.x,RequestContext还提供了一个更简单的api,称为execute.

RequestContext.getCurrentInstance().execute("dialogue.show()");
Run Code Online (Sandbox Code Playgroud)


Abi*_*sia 6

RequestContext提供了一个有用的API,用于将参数从JSF支持bean以json格式传递给ajax回调oncomplete.从服务器端执行javascript并添加要以编程方式更新的组件.

Backend Bean的代码示例:

RequestContext context = RequestContext.getCurrentInstance();

if (condition)
{
    context.addCallbackParam("someVariable", true);
}
else
{
    context.addCallbackParam("someVariable", false);
}
Run Code Online (Sandbox Code Playgroud)

我们想javaScript在前端(xhtml)编写一个函数来处理这个回调,就像这样

function precautionsDialogShow(xhr, status, args)
{
    if(args.someVariable)
    {
        dialogue.show();
    }
}
Run Code Online (Sandbox Code Playgroud)