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 が式を解析する方法だけでなく、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が間違っています。追加の2つの変数は、#requestParamsと#pathVariablesです。

于 2012-07-13T21:34:41.327 に答える