Tag: validation

Apache Common UrlValidator不支持unicode。 alernative是可用的吗?

我尝试urlvalidation。 但是UrlValidator不支持unicode。 这是代码 public static boolean isValidHttpUrl(String url) { String[] schemes = {“http”, “https”}; UrlValidator urlValidator = new UrlValidator(schemes); if (urlValidator.isValid(url)) { System.out.println(“url is valid”); return true; } System.out.println(“url is invalid”); return false; } String url = “ftp://hi.com”; boolean isValid = isValidHttpUrl(url); assertFalse(isValid); url = “http:// hi.com”; isValid = isValidHttpUrl(url); assertFalse(isValid); url = “http://hi.com”; isValid […]

使用XSD / trang HTML进行Java HTML 5validation5放宽NG到XSD的转换

我的目标是在java中使用XSD架构进行独立的HTML 5标记validation。 在下面我描述我的方法。 任何帮助都表示赞赏 – 如果有替代或更好的方法可以做到这一点。 WHATTF发布了针对HTML 5的Relax NG / Schematron模式 。 Trang [3]是一个用于不同XML模式语言的开源转换器,应该能够从Relax NG转换为XSD。 使用WHATTF模式,可以按如下方式调用trang转换器: $ java -jar ./trang.jar ./whattf/syntax/relaxng/html5.rnc html5.xsd 但是,trang会因错误的类型转换而产生以下许多变形: whattf/syntax/relaxng/applications.rnc:265:51: warning: cannot convert datatype library “http://whattf.org/datatype-draft”; using datatype “string” […] 我认为要让trang工作,需要将pluggable-datatypes [4]传递给jing。 Jing [5]是一个Relax NGvalidation器,我认为它是由trang使用的。 在whattf / syntax / relaxng / datatype文件夹中,提供了这些pluggable-datatypes的java实现。 因此,我创建了一个html5-datatypes.jar并将其添加到trangs类路径中,如下所示: $ java -cp ./html5-datatypes.jar -jar ./trang.jar ./whattf/syntax/relaxng/html5.rnc html5.xsd […]

Java中的validation框架

我们目前正在重构我们的插件API **(符合JDK 1.4)**,它以jar文件的forms发送给我们的客户端(即,不需要生成javascripts等等)。 这是一个非常轻量级的插件,因此我们尽可能多地保留了像Spring一样多的依赖jar。 在此过程中,我们开始了解是否需要一种适当的validation方法,这种方法可以通过一些validation框架来实现。 扼杀,除了少数诸如Commons Validator,Drools和Spring支持之外,我在这些方面(像其他开源项目一样)找不到太多选项。 Drools似乎对我的需求如此复杂。 然而,Commonsvalidation器在其validation风格中看起来是史前的。 我不能使用基于注释的validation,因为它必须是JDK 1.4并且更喜欢可以外化的东西,因此在更改时不需要再次编译类。 有更好的选择吗?

如何在Java中检查用户输入是String,double还是long

我是java的初学者。 我想首先检查用户输入是String还是Double或int。 如果是String,double或减号,则应提示用户再次输入有效的int号。 只有当用户输入有效数字时,程序才会跳转尝试。 我一直在想几个小时,我没有任何用处。请帮忙,谢谢! import java.util.InputMismatchException; import java.util.Scanner; public class Fizz { public static void main(String[] args) { System.out.println(“Please enter a number”); Scanner scan = new Scanner(System.in); try { Integer i = scan.nextInt(); if (i % 3 == 0 && (i % 5 == 0)) { System.out.println(“FizzBuzz”); } else if (i % 3 == […]

spring的validation人员应该访问数据库吗?

我不确定根据数据库状态使validation器validation命令是否是一个好的设计决策。 例如,如果我需要validationUser bean,除了检查电子邮件和用户名是否为空等。如果已经使用过,我还需要拒绝它们。 这种逻辑应该放在validation器还是服务对象中?

检查类型是否为接口

我想validation发送给方法的参数,它必须是接口类型。 怎么问? void (Class interfaceType){ if (thisisnotaninterface){ throw… } }

如何在Spring中使用注释validation,并从属性文件中获取错误消息?

我是spring的新手。 我在我的域类中设置了validation,如下所示: public class Worker { @NotNull(message=”Name must be input”) @Size(min=1,max=50, message=”Name must not exceed 50 characters”) private String name; … } 这是jsp文件: 和控制器代码: @RequestMapping(value=”/test”,method=RequestMethod.POST) public void form(@Valid Worker worker, BindingResult result) { if (result.hasErrors()) { return; } … 它有效,但如何在我的messageSource中用一些文本(如worker.name.overflow)替换“名称不能超过50个字符”? 我可以在BindingResult中添加一个messageResolver吗? 所有搜索结果似乎都是关于编写自定义Validator类的,但我现在想要使用注释。 我很确定有办法,因为在这个问题上有人这样做了。

XML Schemavalidation错误

我有我的xml文件 123 qwe qwe qwe qwe 2012 1234 1234 1234 122 Pan : MobileNo : TotalAmount : FgbIIimTLIbd0Zpvq1zDrZse6aJg5bAE1/Q58cEkEvk= dy4QDco5NhXResncu0tUG5ylujDn9siIQSHjuX5HxH2gs70LpsO3KDWNvDXjpgkIySYfzJ/FdC6C trkSySWRjhObqI8cbcP5VU/nL8pP21+3CO+gF1k884aeX3felpRy0FBBMTYBknQTunWCHvpHk927 ZHGvm6Hiej7iBKr3e1k= 我的此xml文件的架构文件如下( c1.xsd ) c2.xsd(编辑) 当我validation我的xml文件时,我得到以下exception org.xml.sax.SAXParseException; systemId: file:/C://xml//c2.xsd; lineNumber: 22; columnNumber: 37; s4s-elt-invalid-content.1: The content of ‘#AnonType_Reference SignedInfoSignature’ is invalid. Element ‘element’ is invalid, misplaced, or oc curs too often. 我无法弄清楚我哪里出错了? 谁能告诉我代码中的错误到底在哪里? 编辑1后出错 org.xml.sax.SAXParseException; […]

将电话号码存储为字符串时,如何防止输入错误?

我正在创建一个可以读取VCards的电话簿程序。 问题在于电话号码。 通常情况下,它们在美国会是这样的: 0771234560 但如果电话号码来自外国,则看起来像这样。 +94771234560或者(22)772324000 现在有+和()标志来处理! 我目前正在将电话号码(VCards包含它们作为字符串)转换为数字。 但是,如果我将允许的电话号码作为字符串,那么用户可以做一些疯狂的事情,比如在联系表单中插入姓名作为电话号码。 如何将电话号码存储为字符串,但可以防止有问题的条目?

如何获得用户从JFormattedTextField看到的相同值?

我正在使用NumberFormatter和JFormattedTextField ,但.getValue()不会返回与用户看到的值相同的值。 我认为输入字符串是使用NumberFormats parse-method解析的,我从NumberFormat.getNumberInstance();得到Numberformat NumberFormat.getNumberInstance(); 与实际的区域设置。 所以我认为我不能轻易扩展它并编写自己的解析方法? 例如 ,如果用户键入1234.487则getValue()将返回: 1234.487但将显示用户1,234.49 另一个例子 ,使用NumberFormat.getCurrencyInstance(); 。 用户1234.487 , getValue()将返回1234.487但用户将显示$1,234.49 相反 ,如果Formatter无法在不进行舍入的情况下格式化值,则需要生成ParseException。 同样的事情,如果用户键入4.35b6 ,默认情况下格式化程序将显示4.35 ,值将为4.35 ,但我想要一个ParseException,因为用户键入了无效值。 这是我尝试过的代码: NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2); nf.setMinimumFractionDigits(2); final JFormattedTextField ftf = new JFormattedTextField(nf); ftf.setValue(new BigDecimal(“1234.50”)); // Print the value from ftf final JTextField txt = new JTextField(12); txt.addFocusListener(new FocusAdapter() { public void focusGained(FocusEvent […]