Java Izpack:Validator不';不行?
我的“UserInputSpec.xml”文件中有一个字段描述Java Izpack:Validator不';不行?,java,izpack,custom-validators,Java,Izpack,Custom Validators,我的“UserInputSpec.xml”文件中有一个字段描述 这是我的验证器类: package com.j32bit.installer.validator; import java.util.Map; import com.izforge.izpack.panels.ProcessingClient; import com.izforge.izpack.panels.Validator; public class SelectSourceValidator implements V
这是我的验证器类:
package com.j32bit.installer.validator;
import java.util.Map;
import com.izforge.izpack.panels.ProcessingClient;
import com.izforge.izpack.panels.Validator;
public class SelectSourceValidator implements Validator{
@Override
public boolean validate(ProcessingClient client) {
Map<String, String> params = client.getValidatorParams();
if( params.get("selected.source").equals("imkb")
|| params.get("selected.source").equals("db"))
return true;
return false;
}
}
包com.j32bit.installer.validator;
导入java.util.Map;
导入com.izforge.izpack.panels.ProcessingClient;
导入com.izforge.izpack.panels.Validator;
公共类SelectSourceValidator实现验证器{
@凌驾
公共布尔值验证(处理客户端){
Map params=client.getValidatorParams();
if(params.get(“selected.source”).equals(“imkb”)
||参数get(“selected.source”).equals(“db”))
返回true;
返回false;
}
}
也可在“Installer.xml”中使用以下变量:
单选按钮未选中。如果我单击“下一步”按钮,按钮仍然未选中,则会继续显示下一页,并且验证不起作用
请帮忙!
提前感谢。在
或
中声明变量似乎根本不起作用。相反,您只需将变量名写入字段,就可以在安装程序中的任何位置使用和引用它。
我还从UserInputPanelSpec.xml中的字段声明中删除了验证器,并将其移动到Installer.xml中的面板声明中。
Installer.xml:
<variables>
<variable name="selected.source" value="" />
</variables>
<panels>
<panel classname="UserInputPanel" id="select.source" >
<validator classname="com.j32bit.installer.validator.SourceValidator"/>
</panel>
</panels>
UserInputPanelSpec.xml:
<!-- SELECT SOURCE PANEL -->
<panel id="select.source">
<field type="radio" variable="selected.source" >
<description align="left" txt="Please select TBPAPIIntegrator data source:" id="radio.text" />
<spec>
<choice txt="IMKB" id="radio.item.imkb" value="imkb" />
<choice txt="Exernal Database" id="radio.item.db" value="db" />
</spec>
</field>
</panel>
现在它可以正常工作了。对于字段,如果在规范1中包含validator元素,它会有所帮助:
<field type="radio" variable="selected.source" >
<description align="left" txt="Please select TBPAPIIntegrator data source:" id="combo.text" />
<spec>
<choice txt="IMKB Server" id="combo.item.imkb" value="imkb"/>
<choice txt="Exernal Database" id="combo.item.database" value="db"/>
<validator class="com.j32bit.installer.validator.SelectSourceValidator" txt="Please select one source!" >
<param name="selected.source" value="${selected.source}"/>
</validator>
</spec>
</field>
<field type="radio" variable="selected.source" >
<description align="left" txt="Please select TBPAPIIntegrator data source:" id="combo.text" />
<spec>
<choice txt="IMKB Server" id="combo.item.imkb" value="imkb"/>
<choice txt="Exernal Database" id="combo.item.database" value="db"/>
<validator class="com.j32bit.installer.validator.SelectSourceValidator" txt="Please select one source!" >
<param name="selected.source" value="${selected.source}"/>
</validator>
</spec>
</field>