2015-10-01 3 views

ответ

2

У него нет событий ajax, как видно из документации и/или источника. Но в реализации команд для терминала, которые вы реализуете самостоятельно, вы можете делать все, что хотите. Включая использование RequestContext для обновления других компонентов.

По крайней мере, это то, что я ожидал (и явно не проверял, извините). Обновление с помощью командыHandler делает не, так как команда commandHandler вызывается во время фазы ответа рендеринга, и вы не можете добавлять обновления к компонентам на этой фазе.

См. Также комментарий к ответу здесь: Can I update a JSF component from a JSF backing bean method?.

Так фактическая хороший ответ является один из самого @Leo (хотя этот ответ помог немного ;-))

+0

извините за мое невежество, но как именно я могу обновить другой компонент таким образом? – Leo

+0

Незнание не является проблемой, но не использует поисковую систему, чтобы получить дополнительную информацию (или визуализацию штриховки, или документы о границах или связанные с ними в Stackoverflow) :-) ... http://stackoverflow.com/ вопросы/11365094/can-i-update-a-jsf-component-from-a-jsf-backing-bean-method – Kukeltje

+0

О, извините, теперь кристально ясно. спасибо – Leo

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"); 
+0

Это на самом деле происходит в фазе рендеринга. Я отлаживаю сейчас, чтобы понять, почему обновление не работает, и если ожидается, что он не будет работать. Пожалуйста, не принимайте мой ответ и принимайте его сейчас. – Kukeltje

+0

Я обновил свой ответ, чтобы указать на ваш, но, тем не менее, не соглашайтесь с моим и немного улучшите свое, чтобы начать с того, почему context.update не работает (см. Мой отредактированный ответ) – Kukeltje

+0

I думаю, что я останусь твоим, так как это была настоящая отправная точка :-), но я также буду продолжать отвечать, потому что он просто обеспечивает что-то, что работает. Может быть, у кого-то еще может получиться лучший ответ, так как мое решение кажется мне немного взломанным. – Leo

Смежные вопросы