我需要设计一个灵活的机制,用于基于Java servlet的Web应用程序的输入验证(在后端)。
它需要能够针对固定值列表,正则表达式,数据库查询等进行验证,真的应该很容易实施新的检查。
目前,我正在考虑InputValidator
接口的行,可以实现该接口以实现不同的验证类型。然后,这将通过XML文件链接到输入字段。
接口
public interface InputValidator
{
public void init( Configuration config, String[] data );
public boolean isValid( Input inp );
}
实施
public class Regex implements InputValidator
{
...
}
配置
<field name="username">
<validator name="regex">
<data><![CDATA[^[\w\-\.+\u00DF]+@*[\w\-\.]+$]]></data>
</validator>
</field>
其他人如何设计这些东西?那里有任何合理的最佳实践吗?该做什么和不该做什么? 任何反馈意见。
答案 0 :(得分:0)
您可以随时使用Hibernate Validator
之类的现成解决方案。 JSF也具有用于验证的bult-in功能(甚至通过AJAX)。我认为没有必要重新发明轮子。