Ну, это просто, в основном я хочу следовать парадигме GWT «Одна страница» и в то же время интегрировать безопасность Spring в приложение.
Как я понимаю, если cookie не найден в системе, Spring перенаправит пользователя на страницу реферера Open id с запросом входа, иначе он просто отправит моему серверу идентификатор открытого URL-адреса пользователя.
Это то, что я в GWT:
final FormPanel formPanel = new FormPanel();
RootPanel.get("openId").add(formPanel);
VerticalPanel openIdContainer = new VerticalPanel();
formPanel.add(openIdContainer);
TextBox url = new TextBox();
url.setText("https://www.google.com/accounts/o8/id");
url.setName("j_username");
openIdContainer.add(url);
formPanel.setAction("j_spring_openid_security_check");
formPanel.setMethod(FormPanel.METHOD_POST);
Button btn = new Button("Open ID");
btn.addClickListener(new ClickListener() {
public void onClick(Widget sender)
{
formPanel.submit();
}
});
openIdContainer.add(btn);
formPanel.addFormHandler(new FormHandler() {
public void onSubmit(FormSubmitEvent event)
{
System.out.println("On Submit invoked " +event.isCancelled());
}
public void onSubmitComplete(FormSubmitCompleteEvent event)
{
System.out.println("On Submit Complete invoked " + event.toString());
}
});
соответствующий вывод:
При отправке вызвано ложное
При отправке завершено, вызвано null
Как я понимаю, полученный html равен нулю. Как еще мне это сделать? GWT 1.5 не имеет простой формы (которая действительно обновляет страницу при отправке) и тега ввода с типом отправки.
Должен ли я жестко запрограммировать это в HTML-виджет?
Я попытался установить другой фрейм в качестве цели этой панели форм, но все еще не смог получить никаких плодотворных результатов.