0

是否可以将方法名称映射到带有 int-http:inbound-gateway 的标头?例如:

<int-http:inbound-gateway request-channel="requests" reply-channel="replies"
    supported-moethds="GET,PUT"
    path="/user">
    <int-http:header name="requestMethod" expression="#requestMethod"/>
</int-http:inbound-gateway>

<!-- ... -->

<int:header-value-router input-channel="requests" header-name="requestMethod>
    <int:mapping value="GET" channel="getUserRequests"/>
    <int:mapping value="PUT" channel="addUserRequests"/>
</int:header-value-router>

此外,我看到了使用 #requestParams 的示例,但 2.1 的 javadoc 提到了 #queryParameters,我在官方文档页面中没有看到其中任何一个的文档。你们知道一个很好的资源,它不仅描述了 SpEL 如何解析表达式,还描述了哪些字段可用于它?我只能说我有标题、有效负载、#pathVariables,也许还有#requestParams 或#queryParams,以及我在当前上下文中定义的任何其他@beans。

提前致谢!

4

1 回答 1

1

该方法始终映射到标头

... http_requestMethod=POST ...


Message<?> message = messageBuilder
    .setHeader(org.springframework.integration.http.HttpHeaders.REQUEST_URL, request.getURI().toString())
    .setHeader(org.springframework.integration.http.HttpHeaders.REQUEST_METHOD, request.getMethod().toString())
    .setHeader(org.springframework.integration.http.HttpHeaders.USER_PRINCIPAL, servletRequest.getUserPrincipal())
    .build();

javadoc 是错误的。两个附加变量是#requestParams 和#pathVariables。

于 2012-07-13T21:34:41.327 回答