【问题标题】:Moqui - Issue retaining/passing the URL parameterMoqui - 保留/传递 URL 参数的问题
【发布时间】:2015-04-30 22:33:17
【问题描述】:

我在 Github 上提到了类似的问题(问题#18),但没有任何对我有用。

我正在尝试使用以下转换/服务:

<transition name="storeContactInfo">
    <service-call name="mantle.party.ContactServices.store#PartyContactInfo" in-map="context" out-map="context" />
    <default-response url="." />
</transition>

屏幕的 url 参数是 workEffortId,但一旦运行过渡,它就会从 url 中剥离。

我也试过了,没用:

<transition name="storeContactInfo">
    <path-parameter name="workEffortId"/>
    <service-call name="mantle.party.ContactServices.store#PartyContactInfo" in-map="context" out-map="context" />
<default-response url="." >
    <parameter name="workEffortId" from="workEffortId" />
</default-response>
</transition>

我还尝试添加操作标记,我之前看到它解决了这个问题。但这也没有用。

我的其他屏幕过渡效果很好。还是有问题,还是我做错了什么?

我使用的是 1.5.1。


更新:我认为问题出在我正在做的事情上,而不是上一期 #18。

仔细阅读通过的地图和值,似乎有一些明显的复杂性需要理解 - 从 get#PartyContactInfo 到 StupidUtilities.flattenNestedMap (创建一个单一的地图,其中包含传入地图和所有嵌套地图的字段和从 Map 中删除具有空值的条目)到 store#PartyContactInfo 在我的转换中调用,它利用传递的许多条件来驱动 PartyForms.xml#ContactInfo。

我试图从第一次服务调用中直接传递值:

<set field="partyId" from="facility.ownerPartyId" />
<service-call name="mantle.party.ContactServices.get#PartyContactInfo" out-map="projectSiteContactInfo" in-map="[partyId:partyId, workEffortId:workEffortId, postalContactMechPurposeId:'PostalShippingDest', telecomContactMechPurposeId:'PhoneShippingDest', emailContactMechPurposeId:'EmailShippingDest']" />

...一直到,但由于某种原因,它没有从另一边出来。

【问题讨论】:

  • 您能否澄清一下这句话:“屏幕的 url 参数是 workEffortId,但一旦运行过渡,它就会从 url 中删除。”?您是说请求中有 workEffortId 参数,但在响应重定向中没有通过?
  • 仅供参考,path-parameter 元素不用于声明过渡参数,请使用 screen.parameter 或 transition.parameter 元素。 path-parameter 标记告诉它在请求 URL 路径中查找额外的元素并添加它们,如果有多个,则按照 path-parameter 标记的顺序添加它们,作为使用 path-parameter.@name 值的命名参数。有关更多详细信息和使用示例(例如在 ExampleApp.xml 中的 REST-ish 转换),请参阅使用 Moqui 制作应用程序一书。

标签: moqui


【解决方案1】:

解决方案是在转换前在容器对话中调用的 /mantle-usl/template/party/PartyForms.xml#ContactInfo 小部件组件中添加一个 workEffortId 字段(隐藏)。

添加后我可以看到:

<parameter name="workEffortId" value="${workEffortId}" />

对于过渡,workEffort 确实为空,因此必须在某个地方被剥离。

将 workEffortId 添加到 ContactInfo 表单解决了该问题。

【讨论】:

    猜你喜欢
    • 2015-10-13
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多