2

我有一个发送 POST 请求的基本 html 页面。在 vaadin 7 中,我正在执行以下操作来检索 POST

request.getParameter("username"); 

执行此操作时我得到一个空值,但是当我在 Vaadin 6 中执行完全相同的操作时,我得到了用户名的实际值(例如“john”)。此外,如果我在我的 html 代码中将方法更改为“GET”,我没有问题并获得用户名的值(使用相同的代码)。

这是 Vaadin 7 中的错误,还是我必须以不同的方式实现它。

4

3 回答 3

1

我不确定这是否能解决问题,但在某些情况下,类似的方法对我有用。Vaadin 7使用VaadinRequestwhile vaadin 6 HttpServletRequest。您可以提取HttpServletRequestfromVaadinRequest并使用它来获取参数。如果请求是类型VaadinRequest

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

希望它有帮助。

于 2013-10-06T12:07:59.317 回答
1

我遇到过同样的问题。调试显示 Vaadin 7 在内部执行了两个请求。第一个请求包含来自 URL 和已发布表单的所有参数。第二个,可能是内部重定向,具有来自 URL 的相同参数以及 Vaadin UI 相关参数。

所以基本上要捕获您发布的参数,您可以添加RequestHandler ,从第一个请求中获取它并可能将其保存在某个地方,例如在会话中,然后在您的组件中读取这些存储的数据。这个解决方案对我有用。

于 2014-03-12T19:50:54.030 回答
0

我希望,它会帮助你得到它。

VaadinRequest vaadinRequest = VaadinService.getCurrentRequest();
logger.error("User Name : "+vaadinRequest.getUserPrincipal().getName()); (OR)
logger.error("User Name : "+vaadinRequest.getRemoteUser());
于 2014-08-05T06:14:59.990 回答