【问题标题】:Logical operators in java (using Validation with Struts 1)java 中的逻辑运算符(使用 Struts 1 的验证)
【发布时间】:2014-03-26 23:50:42
【问题描述】:

我对在 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' 相同。我想知道是否有一些解决方案可以避免运算符 OR 的组合。(true || false)

这就是我要搜索的内容:(0=false 1=true)

0 || 0 => 0
1 || 0 => 0
0 || 1 => 0
1 || 1 => 1  

【问题讨论】:

  • 好吧,你的代码说如果条件为真(整个事情),然后添加两条消息。电脑很笨。他们不会读心术。所以它不知道您的意思是“仅在适当的情况下添加第一条消息”和“仅在适当的情况下添加第二条消息”。你告诉它两个都做,它两个都做。
  • 是的,我完全同意你的看法。我会更清楚地编辑我的帖子

标签: java operators struts-1 logical-operators


【解决方案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"));
}

不确定这是不是你需要的,只是猜测。

【讨论】:

  • 是的,谢谢,但我知道我可以做到,我只是更愿意找到另一个解决方案(因为我有其他的 IF)
【解决方案2】:

我找到了解决方案,即使它的工作不完全合乎逻辑:(只需添加 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"));
}

如果有人有其他对我更有帮助的解决方案。

【讨论】:

    【解决方案3】:

    没有“其他解决方案”。如果您输入||,则如果只有一个字段为空,则会添加两个错误。如果你输入&&,那么当两个字段都为空时,两个错误都将被添加,但如果只有一个为空,则不会添加任何内容(这也不是你想要的)。

    peter.petrov 建议的唯一解决方案

    【讨论】:

    • 是的,我知道,但它可以工作,因为'code'和'codeNew',这些字段中的每一个都在不同的页面中(所以即使添加了两条错误消息,页面中也只显示一条)但是我更喜欢使用 peter.petrov 的解决方案,即使它不是更好的解决方案
    猜你喜欢
    • 1970-01-01
    • 2020-07-22
    • 2016-10-22
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    相关资源
    最近更新 更多