如何在p:terminal命令上更新组件?

时间:2015-10-01 18:02:09

标签: jsf primefaces

p:terminal没有更新属性。

它是否支持任何类型的ajax事件?

如何更新另一个jsf组件作为对终端命令的响应?

2 个答案:

答案 0 :(得分:2)

它没有任何ajax事件,可以在文档和/或源代码中看到。但是在您自己实现的终端命令的实现中,您可以执行任何您想要的操作。包括使用RequestContext更新其他组件。

至少这是我的预期(并没有明确测试,抱歉)。从commandHandler更新工作,因为在呈现响应阶段调用commandHandler并且您无法在该阶段向组件添加更新。

另请参阅答案评论:Can I update a JSF component from a JSF backing bean method?

所以实际的答案是来自@Leo本人的答案(尽管这个答案有点帮助; - ))

答案 1 :(得分:0)

这对我有用

    <p:terminal
        id="terminal"
        widgetVar="term"
        prompt="Lab >> "
        commandHandler="#{labMB.handleCommand}"
        welcomeMessage="Welcome to Lab" />

    <p:remoteCommand
        name="rc"
        update="history" />

    <p:dataTable
        id="history"(...)

public String handleCommand(String command, String[] params) {
        RequestContext context = RequestContext.getCurrentInstance();
        //(do things here)
        context.execute("rc();");
}

似乎只是打电话

context.update("form:history");