java 如果变量的唯一性被破坏[关闭],如何向用户提供错误

1l5u6lss  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(58)

已关闭,此问题需要更focused。它目前不接受回答。
**想改善这个问题吗?**更新问题,使其只关注editing this post的一个问题。

3天前关闭。
Improve this question
我对休息和Java还很陌生。我试图访问以下字段,以便给予关于变量usernameemailfidelity card number的唯一性的反馈。
该领域是:

据我所知,该字段是通过将required添加到html中的input标记中生成的:

<label for="username">Username:</label>
<input type="text" id="username" name="username" required><br>

如果一个变量的唯一约束被打破了,我该如何进行自定义以显示和错误?

ddrv8njm

ddrv8njm1#

如果我正确理解了你的问题,你希望验证输入到HTML的数据是唯一的,没有两个值是相同的。
您有多种选择来执行此操作,主要是在JavaScript客户端验证它,或者将它发送到服务器,然后在那里验证它。

服务端:

在看不到控制器的情况下,很难告诉您需要进行哪些更改,因此我将概述需要进行的更改。

  • 您的控制器需要从客户端获取数据。

或者:

  • 参数化URL
  • 请求主体
    *自定义请求对象(我建议你无论如何都可能在服务器上处理数据,所以现在这样做是有意义的。
  • 您需要验证这些值是否唯一。
  • 最简单的方法是使用哈希集或流。我已经附上了一个片段,我认为是正确的,但我的测试已经远远不够广泛。这段代码还可以从其他一些东西中受益,比如删除空白,但我将把这些东西留给读者练习。
private static boolean checkDisctinct(List<String> values) {
    return values.stream()
            .map((e) -> e.toLowerCase())
            .distinct()
            .collect(Collectors.toList()).size() == values.size();
}

客户端:

这是一种更简单的方法,我认为也是更好的方法,因为它有助于将逻辑排除在控制器之外。我们不需要发送我们知道是坏的数据,对吗?

  • 修改你的fetch请求,在启动promise之前验证数据:

Source

function checkForDuplicates(array) {
  return new Set(array).size !== array.length
}

相关问题