我有一个发送POST请求的基本html页面。在vaadin 7中,我正在执行以下操作来检索POST
request.getParameter("username");
当我这样做时,我得到一个null,但是当我在Vaadin 6中做同样的事情时,我得到了用户名的实际值(例如“john”)。此外,如果我在我的HTML代码中将我的方法更改为“GET”,我没有问题并获得用户名的值(使用相同的代码片段)。
这是Vaadin 7中的错误,还是我必须以不同的方式实现它。
答案 0 :(得分:1)
我不确定这是否能解决问题,但在某些情况下,类似的方法对我有用。 Vaadin 7
使用VaadinRequest
而vaadin 6
HttpServletRequest
。您可以从HttpServletRequest
中提取VaadinRequest
,然后使用它来获取参数。如果请求的类型为VaadinRequest
:
VaadinServletRequest vsRequest = (VaadinServletRequest)request;
HttpServletRequest hsRequest = vsRequest.getHttpServletRequest();
String un = hsRequest.getParameter("username");
希望它能解决。
答案 1 :(得分:1)
我有同样的问题。调试显示Vaadin 7内部执行两个请求。第一个请求包含来自URL和发布表单的所有参数。第二个,可能是内部重定向,具有来自URL和Vaadin UI相关参数的相同参数。
因此,基本上要捕获您发布的参数,您可以添加RequestHandler,从第一个请求中获取它并可能将其保存在某个地方,例如在会话中,然后在您的组件中读取此存储的数据。这个解决方案适合我。
答案 2 :(得分:0)
我希望,它会帮助你获得它。
VaadinRequest vaadinRequest = VaadinService.getCurrentRequest();
logger.error("User Name : "+vaadinRequest.getUserPrincipal().getName()); (OR)
logger.error("User Name : "+vaadinRequest.getRemoteUser());