我可以使用属性在Explanatory Text中配置URL吗?

时间:2017-04-28 21:52:20

标签: orbeon

在表单生成器中,我有一个包含说明文本字段的表单。该文本包含一个链接。我希望该链接的URL在每个环境中都不同。对于表单中的HTTP服务,我使用的是我已按照此blog post中所述定义的属性。

是否可以使用属性在解释性文本中配置URL?

1 个答案:

答案 0 :(得分:1)

实施RFE 2427后,您就可以找到问题的真正解决方案。现在,fr:explanation显示的文字完全是静态的。

你可以解决这个问题,方法是创建你自己的custom model logic,在表单加载时,用你定义的属性值替换文本中的某个字符串:

  1. 在表单构建器中,创建一个说明文本字段,并为URL输入SITEURL
  2. 仍在表单构建器中,编辑表单源以删除xxf:readonly="true"实例上的fr-form-resourcesThis是生成的表单。
  3. properties-local.xml添加自定义模型逻辑:<property as="xs:anyURI" name="oxf.fr.detail.model.custom.*.*" value="oxf:/forms/resources/model.xml"/>
  4. 仍然在properties-local.xml中,使用属性<property as="xs:string" name="com.example.siteurl" value="http://www.orbeon.com/"/>定义占位符的值。
  5. model.xml中,在表单加载时,将SITEURL替换为属性值。
  6. 以下是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>