Как сделать серверный вызов без отправки асинхронного экземпляра в GWT - PullRequest
2 голосов
/ 08 сентября 2011

Я использую GWT2.3 с GWTP. Теперь в этом приложении мне нужно сделать вызов на стороне сервера из класса, не являющегося презентатором (так что нет идентификатора отправки асинхронного). Вот мой класс

public class NameTokenHandler implements ValueChangeHandler<String> {
    @Inject
    DispatchAsync dispatchAsync;
    @Override
    public void onValueChange(ValueChangeEvent<String> event) {
        if (event != null) {
            String nameToken = event.getValue();

            if(dispatchAsync!=null)
            {
                System.out.println("yes");
            } else {
                System.out.println("No");
            }

            History.newItem(nameToken);
        }
    }
}

Здесь dispatchAsync всегда имеет значение null. Я получаю от того, где это должно быть инициализировано, чтобы я мог сделать вызов на стороне сервера. Если есть какой-то другой путь, пожалуйста, дайте мне знать. Заранее спасибо.

1 Ответ

2 голосов
/ 12 сентября 2011

Вам нужно ввести NameTokenHandler, поэтому ваш диспетчер будет также введен.

public class C {

  private NameTokenHandler handler;

  @Inject
  public C(NameTokenHandler handler) {
    this.handler = handler;
  }

}

Таким образом, обработчик будет введен в класс C, а ваш диспетчер также будет введен в NameTokenHandler. Кстати, вам может понадобиться конструктор в NameTokenHandler, который следует той же схеме (DispatchAsync в качестве параметра).

...