安装位置上的java Izpack toggel复选框
我在UserInput
面板中有一个checkbox
for Windows服务安装,我想让它与安装路径相关
如果安装路径是本地驱动器,则应显示“安装windows服务”checkbox
。
但是,如果安装路径是网络共享位置或安装的驱动器,则不应显示该复选框
为此,我尝试使用Dynamic variable和Condition
以下是安装中的代码片段。xml
<conditions>
<condition type="variable" id="install.path.condition">
<name>$INSTALL_PATH</name>
<value>//</value>
</condition>
</conditions>
<dynamicvariables>
<variable name="windowsservice" value="false" condition="install.path.condition" />
<variable name="windowsservice" value="true" condition="!install.path.condition" />
</dynamicvariables>
install_userinputspec中的目标字段。xml
<field align="left" type="check" variable="windowsservice" conditionid="install.path.condition" revalidate="true">
<os family="windows"/>
<spec txt="Install as Windows Service" id="windowsServiceCheckbox" true="on" false="off"
set="false" />
</field>
我尝试了我的运气得到这项工作,但它不会。请帮忙
# 1 楼答案
将
$INSTALL_PATH
更改为INSTALL_PATH
如果您不确定将为
INSTALL_PATH
输入的确切值,则使用带有嵌套<variable>
标记的type="contains"
代替type="variable"
条件,例如:IzPack doc contains cond.
使用
revalidate="yes"
作为<spec>
标记的属性,而不是<field>
标记本身首先,试着让你的
<condition>
工作起来。一旦您测试了check
字段,就可以直接链接到启用/禁用的条件,因此,在这种情况下,您不需要使用<dynamicvariables>
,除非您需要它用于除checkbox-enable-disable-based-by-INSTALL\u路径之外的其他用途