我对使用java中的逻辑运算符感到困惑。我正在使用struts 1进行字段验证。这是我的代码:
ActionErrors errors = new ActionErrors();
if(StringUtils.isBlank(getCode()) || StringUtils.isBlank(getNewCode())){
errors.add("code", new ActionMessage("error.codeMode.required"));
errors.add("codeNew", new ActionMessage("error.codeMode.required"));
}
如果字段'code'不为空并且字段'newCode'为空,则出现字段'code'的错误消息(即使它不为空),与字段'newCode'相同。我想知道是否有一些关于避免运算符组合的解决方案。(true || false)
这就是我要搜索的内容:(0 = false 1 = true)
0 || 0 => 0
1 || 0 => 0
0 || 1 => 0
1 || 1 => 1
答案 0 :(得分:1)
不熟悉这项技术,但来自于 逻辑立场这对我来说更有意义。
if(StringUtils.isBlank(getCode())){
errors.add("code", new ActionMessage("error.codeMode.required"));
}
if(StringUtils.isBlank(getNewCode())){
errors.add("codeNew", new ActionMessage("error.codeMode.required"));
}
不确定这是否是你所需要的,只是猜测。
答案 1 :(得分:0)
我找到了解决方案,即使它的工作原理并不合乎逻辑:(只需添加AND)
if(StringUtils.isBlank(getCode()) && StringUtils.isBlank(getNewCode())){ errors.add("code", new ActionMessage("error.codeMode.required")); errors.add("codeNew", new ActionMessage("error.codeMode.required")); }
和peter.petrov这个问题的第二个建议我:
if(StringUtils.isBlank(getCode())){
errors.add("code", new ActionMessage("error.codeMode.required"));
}
if(StringUtils.isBlank(getNewCode())){
errors.add("codeNew", new ActionMessage("error.codeMode.required"));
}
如果有人有另一种对我更有帮助的解决方案。
答案 2 :(得分:0)
没有“其他解决方案”。如果您放置||
,那么只有一个字段为空时才会添加两个错误。如果您放置&&
,那么当两个字段都是空的时会添加两个错误,但如果只有一个是空的,那么就不会添加任何内容(这也不是您想要的)。
只有解决方案才是peter.petrov建议的