我可以使用 属性 在说明文字中配置 URL 吗?
Can I use a property to configure a URL in Explanatory Text?
在表单生成器中,我有一个包含解释性文本字段的表单。文本包括 link。我希望那个 link 的 URL 在每个环境中都不同。对于表单中的 HTTP 服务,我使用的是 属性,我已按照 blog post.
中的描述进行了定义
是否可以使用属性来配置说明文字中的URL?
实施 RFE 2427 后,您的问题就会得到真正的解决方案。现在,fr:explanation
显示的文本完全是静态的。
您可以通过创建自己的 custom model logic 解决此问题,在加载表单时,将文本中的某个字符串替换为您定义的 属性 的值:
- 在 Form Builder 中,创建一个解释性文本字段,并为 URL 输入
SITEURL
。
- 仍在 Form Builder 中,编辑表单的源代码以删除
fr-form-resources
实例上的 xxf:readonly="true"
。 This 是结果形式。
- 在您的
properties-local.xml
中添加自定义模型逻辑:<property as="xs:anyURI" name="oxf.fr.detail.model.custom.*.*" value="oxf:/forms/resources/model.xml"/>
.
- 还是在
properties-local.xml
中,用一个属性定义占位符的值:<property as="xs:string" name="com.example.siteurl" value="http://www.orbeon.com/"/>
.
- 在
model.xml
中,加载表单时,将 SITEURL
替换为 属性 的值。
这里是 model.xml
的内容:
<xf:model xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xxf="http://orbeon.org/oxf/xml/xforms">
<xf:action event="xforms-model-construct-done">
<xf:action iterate="instance('fr-form-resources')/resource/text-with-link/text">
<xf:setvalue ref="."
value="
replace(
.,
'SITEURL',
xxf:property('com.example.siteurl')
)"/>
</xf:action>
</xf:action>
</xf:model>
在表单生成器中,我有一个包含解释性文本字段的表单。文本包括 link。我希望那个 link 的 URL 在每个环境中都不同。对于表单中的 HTTP 服务,我使用的是 属性,我已按照 blog post.
中的描述进行了定义是否可以使用属性来配置说明文字中的URL?
实施 RFE 2427 后,您的问题就会得到真正的解决方案。现在,fr:explanation
显示的文本完全是静态的。
您可以通过创建自己的 custom model logic 解决此问题,在加载表单时,将文本中的某个字符串替换为您定义的 属性 的值:
- 在 Form Builder 中,创建一个解释性文本字段,并为 URL 输入
SITEURL
。 - 仍在 Form Builder 中,编辑表单的源代码以删除
fr-form-resources
实例上的xxf:readonly="true"
。 This 是结果形式。 - 在您的
properties-local.xml
中添加自定义模型逻辑:<property as="xs:anyURI" name="oxf.fr.detail.model.custom.*.*" value="oxf:/forms/resources/model.xml"/>
. - 还是在
properties-local.xml
中,用一个属性定义占位符的值:<property as="xs:string" name="com.example.siteurl" value="http://www.orbeon.com/"/>
. - 在
model.xml
中,加载表单时,将SITEURL
替换为 属性 的值。
这里是 model.xml
的内容:
<xf:model xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xxf="http://orbeon.org/oxf/xml/xforms">
<xf:action event="xforms-model-construct-done">
<xf:action iterate="instance('fr-form-resources')/resource/text-with-link/text">
<xf:setvalue ref="."
value="
replace(
.,
'SITEURL',
xxf:property('com.example.siteurl')
)"/>
</xf:action>
</xf:action>
</xf:model>