2013-10-03 29 views
2

我有一個發送POST請求的基本html頁面。在vaadin 7我做以下檢索POST無法從vaadin中的請求獲取用戶名7

request.getParameter("username"); 

我得到一個空當我這樣做,但是當我做同樣的事情在Vaadin 6我得到的用戶名(「約翰的實際值「 例如)。另外,如果我在我的html代碼中將我的方法更改爲「GET」,我沒有問題並獲得用戶名的值(使用相同的代碼段)。

這是Vaadin 7中的一個錯誤,還是我必須以不同的方式實現它。

+0

我從來沒有說過「有」,我問了一個非常具體的事情。 – abden003

+2

糟糕。我的錯。但它仍然是一個可怕的問題標題。 –

回答

1

我不確定這是否能解決問題,但在某些情況下,類似的方法對我有效。 Vaadin 7使用VaadinRequestvaadin 6HttpServletRequest。您可以從VaadinRequest中提取HttpServletRequest,然後使用它來獲取參數。如果請求的類型是VaadinRequest

VaadinServletRequest vsRequest = (VaadinServletRequest)request; 
HttpServletRequest hsRequest = vsRequest.getHttpServletRequest(); 
String un = hsRequest.getParameter("username"); 

希望它可以。

+0

我會試試看,並回復你 – abden003

1

我有同樣的問題。調試顯示Vaadin 7在內部執行兩個請求。第一個請求包含來自URL和來自發布表單的所有參數。第二個,可能是內部重定向,具有來自URL和Vaadin UI相關參數的相同參數。

因此,基本上可以捕獲您發佈的參數,您可以添加RequestHandler,從第一個請求中獲取並可能將其保存在某處,例如在會話中,然後在組件中讀取此存儲的數據。這個解決方案適用於我。

0

我希望它可以幫助你獲得它。

VaadinRequest vaadinRequest = VaadinService.getCurrentRequest(); 
logger.error("User Name : "+vaadinRequest.getUserPrincipal().getName()); (OR) 
logger.error("User Name : "+vaadinRequest.getRemoteUser());