我有一个需要用户输入的 ant 脚本。我想确保用户输入了正确的输入类型,如果没有,提示他们输入正确的内容。
<input message="secure-input:" addproperty="the.password" >
</input>
我必须检查输入是否为空,然后我会提示他们重新输入。
Ant 输入任务可以吗?
最佳答案
大多数条件条款最多允许您 fail如果不满足某些条件,则脚本。我想象你正在收集用户的一些输入,所以如果用户提供空密码失败可能不是最好的可用性体验,因为他将不得不重新输入所有内容......
此外,仅测试一个空字符串似乎是一个糟糕的验证,如果用户提交了一堆空格怎么办?
我的(诚然是老掉牙的)建议如下:
<target name="askPassword">
<local name="passwordToValidate"/>
<input message="secure-input:" addproperty="passwordToValidate"/>
<script language="javascript">
<![CDATA[
passwordToValidate = project.getProperty("passwordToValidate");
//You can add more validations here...
if(passwordToValidate.isEmpty()){
println("The password cannot be empty.");
project.executeTarget('askPassword');
}
]]>
</script>
<property name="the.password" value="${passwordToValidate}"/>
</target>
所以亮点:
- 使用local task为“passwordToValidate”属性设置一个本地范围(请记住,一旦您在 ant 脚本上设置了一个属性,大多数任务都不允许您重写它,因此递归会出现问题)
- 使用脚本测试您的输入(可能添加更多验证)
- 如果测试失败,再次调用目标
- 如果测试成功,将局部范围的属性分配给全局范围的属性
我的 2 美分。
关于java - Ant Input Task中如何判断输入是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406649/