GWT: Токенизация сложных мест

Использование GWT с шаблон MVP, я хотел бы иметь место, представляющее несколько более сложное состояние (в отличие от канонического примера, в котором есть только "имя") . Моим первым желанием было использовать общий объект передачи, который я бы сериализовал для токена. Однако Gson (библиотека сериализации, которую я использую), похоже, не Совместимость с ГВТ.

Я начал с ручной сериализации и десериализации себя, но это выглядело как вариант использования, который должен быть довольно распространенным. Итак, мой вопрос: что такое «обычные» средства токенизации сложного состояния места?


person Ray    schedule 15.06.2011    source источник
comment
Привет, насколько сложное у тебя место? Если это просто идентификатор записи темы, вы можете использовать user: 12, чтобы добавить идентификатор к токену места. Можно добавить несколько полей, используя разделитель по вашему выбору.   -  person ianmayo    schedule 15.06.2011
comment
У меня есть пара вариантов использования. Одним из них является критерий поиска, где у нас может быть несколько критериев, и каждый критерий имеет несколько полей (например, поле для фильтрации, тип фильтра, значение).   -  person Ray    schedule 15.06.2011
comment
В этом случае я поддерживаю ответ Питера ниже. Если ваши токены могут уместиться в пару сотен символов, просто используйте токенизатор, как в коде .google.com/webtoolkit/doc/latest/ Если больше, вам придется хранить запрос в своей базе данных и ссылаться на него через идентификатор.   -  person ianmayo    schedule 15.06.2011


Ответы (2)


Токены истории являются частью URL-адреса и отображаются в адресной строке браузера. Чтобы сделать эту работу, вам сначала нужно сериализовать их, а затем закодировать их URL. Также существуют практические ограничения на длину URL-адреса: максимальная длина URL в разных браузерах?

Вы планируете добавить этот URL в закладки? Если нет, то вы должны просто сохранить объект на карте под каким-то идентификатором и включить этот идентификатор в токен.

Если вам нужно пойти по своему маршруту, генерировать JSON в GWT проще всего с помощью Типы наложений.

person Peter Knego    schedule 15.06.2011

У нас тоже была эта проблема.

Что мы сделали, так это использовали идентификатор объекта в месте и сохранили объект на сервере, это делает URL-адрес более удобным, недостатком является дополнительный вызов сервера для восстановления объекта.

Еще одним преимуществом этого решения является то, что вы сохраняете контроль над объектом, вы можете обновить его в любой момент.

person LuisKarlos    schedule 16.10.2011