无法在 XPL - XSLT 处理器中执行 xxforms:get-request-parameter
我收到错误:
{...get-request-parameter('query..}:
中 ... 处的 XPath 语法错误 找不到名为 {http://orbeon.org/oxf/xml/xforms}获取请求参数()。注意:外部函数调用已被禁用
注意:当我尝试使用以下命令执行管道时,
<p:processor name="oxf:xslt">
<p:input name="config">
<xsl:stylesheet version="2.0">
<xsl:template match="/">
<TargetURL>
<xsl:variable name="location" select="/Configuration/XMLDB/Location/text()"/>
<xsl:variable name="name" select="/Configuration/XMLDB/Name/text()"/>
<xsl:variable name="query" select="xxforms:get-request-parameter('query')"/>
<xsl:value-of select="fn:concat($location,'/',$name,'?',$query)"/>
</TargetURL>
</xsl:template>
</xsl:stylesheet>
</p:input>
<p:input name="data" href="#configuration"/>
<p:output name="data" id="Target"/>
</p:processor>
: XPL 不是检索 HTTP 请求参数的正确位置(我应该在 page-flow.xml 中执行此操作吗?)
I get the error:
XPath syntax error at ... in {...get-request-parameter('query..}:
Cannot find a matching 1-argument function named {http://orbeon.org/oxf/xml/xforms}get-request-parameter(). Note: external function calls have been disabled
when I attempt to execute a pipeline with:
<p:processor name="oxf:xslt">
<p:input name="config">
<xsl:stylesheet version="2.0">
<xsl:template match="/">
<TargetURL>
<xsl:variable name="location" select="/Configuration/XMLDB/Location/text()"/>
<xsl:variable name="name" select="/Configuration/XMLDB/Name/text()"/>
<xsl:variable name="query" select="xxforms:get-request-parameter('query')"/>
<xsl:value-of select="fn:concat($location,'/',$name,'?',$query)"/>
</TargetURL>
</xsl:template>
</xsl:stylesheet>
</p:input>
<p:input name="data" href="#configuration"/>
<p:output name="data" id="Target"/>
</p:processor>
Is XPL not the correct location to retrieve the HTTP request params (should I be doing it in page-flow.xml instead?)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
通过使用 XPL 中的 oxf:request 处理器检索查询参数并在单独的输出上提供它们来解决该问题,然后使用 oxf:xslt 处理器访问该输出,如下所示:
Solved it by using the oxf:request processor in the XPL to retrieve query parameters and provide them on a separate output which is then accessed using oxf:xslt processor, like so:
xxforms:get-request-parameter()
设计为从 XForms 调用,但您在这里从 XSLT 调用它。在这种情况下您真的需要使用 XPL/XSLT 吗?在大多数情况下,如果您生成的是网页,则可能只能使用 XForms。在页面流中,您可以使用
view
属性指向 XForms,并且在 XForms 中的xforms-model-construct-done
上,您可以使用以下命令访问请求参数:xxforms:get-request-parameter()
,并在必要时将其值复制到实例中的某个位置。xxforms:get-request-parameter()
is designed to called from XForms, but you are here calling it from XSLT.Do you really need to use XPL/XSLT in this case? In most cases, if what you are generating is a web page, you might just be able to use XForms. In your page flow, you point to your XForms with the
view
attribute, and in your XForms, onxforms-model-construct-done
, you can access the request parameters withxxforms:get-request-parameter()
, and copy their value somewhere in an instance if necessary.