我在jsp页面上使用验证。当字段中的条目不可接受时,我们当前会给出一般的错误消息,例如“请输入有效数字”,但我希望显示我输入的字符不是数字。例如:假设我输入“O”而不是“0”,我想显示消息“O”不能接受为数字
我怎样才能做到这一点。任何想法和指导都会很明显
答案 0 :(得分:0)
好的,这很容易实现。我们都知道我们可以在一个属性中使用多个验证消息,对吗?例如:
[Required(ErrorMessage = "link is wrong!")]
[DisplayName("link (ex: http://test.com)")]
[Url(ErrorMessage = "Please write a valid link!")]
public string Linku { get; set; }
所以,现在你需要做的就是花一些时间并尽可能多地添加。您可以在前面的示例中添加额外的属性,并根据需要再添加一个案例,例如:
[RegularExpression("([a-zA-Z0-9 .&'-]+)", ErrorMessage = "You cant add numbers on the link field")]
[Required(ErrorMessage = "link is wrong!")]
[DisplayName("link (ex: http://test.com)")]
[Url(ErrorMessage = "Please write a valid link!")]
public string Linku { get; set; }
正如我所看到的,你的主要目的是获取一些参数,然后更加动态地向他展示他写的内容,这是不对的。但是这样的属性,属性验证并不能为我们提供一些准备好的东西。如果我们想深入了解,我们必须在检查时在控制器中执行此操作:
if(ModelState.IsValid)
{
//here we can edit validation error messages, since we can have
//parameters from the controller right?
}
此外,您可以检查错误消息,也可以在此for循环中编辑它们。
foreach (ModelState modelState in ViewData.ModelState.Values) {
foreach (ModelError error in modelState.Errors) {
DoSomethingWith(error);
}
还有一个选择是使用javascript / jquery,客户端验证,这在安全性和绕过时不是很有用。
答案 1 :(得分:0)
这里有一个简单的例子,说明如何获得不符合您需求的所有角色。您可能必须使其适应您的代码。这只是一个指导原则。
String test="456464O1324l456";
ArrayList<Character> chars=new ArrayList<Character>();
for (Character c: test.toCharArray()) {
boolean error=Character.isAlphabetic(c);
if(error){
chars.add(c);
}
}
for (Character character : chars) {
System.out.println(character);
}