java中的逻辑运算符(使用Struts 1验证)

时间:2014-03-26 23:50:43

标签: java operators struts-1 logical-operators

我对使用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  

3 个答案:

答案 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建议的