2011-06-28 203 views
0

當提交表單時,一個好的設計方案應該是「後退」,然後是「前進」瀏覽器按鈕的行爲。 類似的問題是,當用戶註銷應用程序然後點擊「轉發」瀏覽器按鈕時應該發生什麼?提交按鈕+ GWT歷史記錄

我很樂意聽到上述情況的一些場景。

謝謝。

編輯 - 要善於分享,我的觀點:-)

我個人的意見是註銷後,用戶應不能夠不經過登錄頁面輸入應用程序。 對於提交場景 - 在提交併返回瀏覽器按鈕後,用戶應該能夠返回到表單,但不包含數據。

+0

你還想要什麼? –

回答

1

一種常見模式是Post/Redirect/Get。在該模式下,該帖子的結果是可收藏的(和後退/前進可導航)頁面。後退按鈕有一個常見的含義:「我不是故意要去這裏,把我帶回我所在的位置」,就像在大多數Windows對話框中打ESC一樣,而「前進」按鈕意味着「我不是故意要撞到後面按鈕,畢竟我想要那個頁面。「這種模式不適用於所有人;當每個頁面(包括對錶單提交的響應)表示您想要書籤的某​​個概念實體時,它是最有意義的。

至於註銷場景,大多數應用程序會檢查您是否登錄,而不管網址是在URL中指定的,如果您未登錄,則重定向到登錄表單(您不必代碼在每個頁面上;檢查通常是一個Valve或其他東西)。一個很好的功能是記住用戶試圖去的地方,並在成功登錄後將它們帶到那裏。

你的問題更多的是關於設計而不是技術,所以GWT並沒有真正改變圖片,除非要注意GWT歷史機制旨在模仿鏈接所連接的靜態頁面的行爲,其中post/redirect /得到模式也是。

+0

感謝gatkin,非常有用。 :) – adgfs

1

使用狀態機來保持用戶(會話)和請求狀態是很常見的。如果你有這樣的狀態機,那麼你知道用戶正在嘗試錯誤的轉換。根據用戶狀態和錯誤的轉換,您可以將用戶轉發到頁面。例如,如果用戶嘗試轉到需要登錄的頁面,但他/她已經註銷,則可以將他/她發送到登錄頁面,但可以提供用戶名並只需要輸入密碼。

要添加此功能,您可以通過在代碼中對狀態機進行硬編碼來編寫自己的代碼,也可以使用其中一個可用的庫。例如, Spring Web Flow爲Spring框架提供了此功能。

+0

感謝您與我分享您的意見:) – adgfs