Я предполагаю, что под Апплетом вы на самом деле имеете в виду не апплет Java, а HTML и Javascript, сгенерированный GWT из клиентского Java-кода. Постарайтесь не путать эти понятия. Ваш проект GWT имеет клиентский Java-код (который преобразуется в HTML и CSS при компиляции) и серверный Java-код, который развернут на сервере как есть. Нет смысла вызывать History.newItem (...) на стороне сервера, это код, который должен идти в вашей клиентской Java, чтобы он был переведен в Javascript и вызван в браузере (история навигации имеет смысл только в браузер).
Кроме того, то, что вы хотите здесь сделать, - это не создавать перенаправление HTTP как таковое, а только переходить на другую страницу / виджет GWT с помощью привязанного к нему якоря. И я предполагаю, что вы хотите, чтобы это также было включено в историю навигации браузера, чтобы пользователь мог правильно использовать кнопки браузера «назад» и «вперед». Для этого вам нужно просто реализовать интерфейс ValueChangeHandler<String>
в вашем главном классе GWT, реализовать public void onValueChange(ValueChangeEvent<String> event)
, разобрать полученную привязку от события и соответственно изменить свое представление. Затем, когда пользователь нажимает кнопку или что-то еще, вы используете класс History, чтобы просмотреть новое событие, что-то вроде этого:
History.newItem("Home", true);
(true означает, что событие будет сгенерировано. В противном случае вы просто добавите токен home в стек истории браузера).
Это вызовет onValueChange(...)
с событием, содержащим токен "home", и там вы сможете проанализировать этот токен и сделать все, что захотите.
http://google -web-toolkit.googlecode.com / svn / javadoc / 1.5 / com / google / gwt / пользователь / client / History.html # newItem (java.lang.String , логическое значение )