如何使用Vaadin在Spring中获取查询参数?

时间:2018-12-06 11:19:37

标签: java spring spring-boot servlets vaadin

我正在尝试从我的网址中获取查询参数。网址看起来像这样:

http://localhost:1001/login?continue=/teams

当我尝试获取continue参数时,我得到的是空值。

request.getParameter("continue")

返回null,所以我尝试读取整个查询字符串,但是

request.getQueryString()

仅返回以下内容:

v-r=uidl&v-uiId=1

如何访问查询参数?

3 个答案:

答案 0 :(得分:1)

Spring使您能够使用@RequestMapping和@RequestParam来获取它们。

示例:http://localhost:8080/spring-rest/ex/bars?id=100

    @RequestMapping(value = "/ex/bars", method = GET)
@ResponseBody
public String getBarBySimplePathWithRequestParam(
  @RequestParam("id") long id) {
    return "Get a specific Bar with id=" + id;
}

在您的情况下,您将必须添加@RequestParam(“ continue”)注释。

您现在可以忽略@RequestBody批注,但是请确保您的控制器已使用@RequestMapping进行批注,并且您的方法的参数具有@RequestParam。.

我在以下站点中使用了此示例:https://www.baeldung.com/spring-requestmapping

里面还有其他有趣的东西

答案 1 :(得分:1)

如果您不想使用Spring MVC,可以参考以下示例:

https://vaadin.com/directory/component/url-parameter-mapping

Vaadin侧面有一些开箱即用的注释,对您的目的有帮助。

似乎您可以在方法级别和作为类成员使用@UrlParameter。 因此,如果您的应用程序需要它,您可以拥有更大的范围。

答案 2 :(得分:1)

v-r=uidl&v-uiId=1表示您正在查看的请求是Vaadin的自动通信层发送的内部XHR请求。

有关如何从浏览器地址栏中显示的URL访问查询参数的详细信息,请参见https://vaadin.com/docs/v12/flow/routing/tutorial-router-url-parameters.html#query-parameters