如何将参数传递给服务调用?

How to pass parameter to service call?

在 PopCommerce 的 Detail.xml 中,有一个参数 productId 被传递到屏幕。如何将该参数传递给服务调用?

我在服务调用中尝试了以下代码,但这不起作用

<field-map field-name="productId" from="productId"/>

屏幕中的参数为

<parameter name="productId" required="true"/>

我定义的服务是

<transition name="createProductReview">
    <service-call name="create#ProductReview" web-send-json-response="true">
        <field-map field-name="productStoreId" value="POPC_DEFAULT"/>
        <field-map field-name="productId" from="how do I use the productId parameter here ?"/>
        <field-map field-name="userId" from="ec.user.userAccount.userId"/>
        <field-map field-name="statusId" value="PrvwPending"/>
    </service-call>
    <default-response type="none"/>
</transition>

你提到的那一行是正确的方法,所有参数都放在上下文中,可以从那里用作字段。具体来说,这一行:

<field-map field-name="productId" from="productId"/>

请注意,对于这些,您也可以使用带有 Groovy 映射语法 ([:]) 的 in-map,这样会更简洁一些。

如果这不起作用,则问题很可能是 productId 未传递到调用转换的请求。