{"id":15287544,"url":"https://github.com/devefx/validator-web","last_synced_at":"2025-04-13T05:32:52.231Z","repository":{"id":57739264,"uuid":"97463086","full_name":"devefx/validator-web","owner":"devefx","description":"Validator-Web基于Servlet的一款验证框架，其核心设计目的是开发迅速、代码量少、学习简单、功能强大、易扩展","archived":false,"fork":false,"pushed_at":"2018-02-12T08:24:22.000Z","size":2406,"stargazers_count":74,"open_issues_count":3,"forks_count":20,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-26T22:12:02.123Z","etag":null,"topics":["java","javacript","spring-mvc","validator"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devefx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-17T10:13:36.000Z","updated_at":"2024-03-05T04:08:34.000Z","dependencies_parsed_at":"2022-08-25T23:32:02.320Z","dependency_job_id":null,"html_url":"https://github.com/devefx/validator-web","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devefx%2Fvalidator-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devefx%2Fvalidator-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devefx%2Fvalidator-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devefx%2Fvalidator-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devefx","download_url":"https://codeload.github.com/devefx/validator-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248670512,"owners_count":21142896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","javacript","spring-mvc","validator"],"created_at":"2024-09-30T15:30:43.944Z","updated_at":"2025-04-13T05:32:52.208Z","avatar_url":"https://github.com/devefx.png","language":"Java","readme":"[![Build Status](https://travis-ci.org/devefx/validator-web.svg?branch=master)](https://travis-ci.org/devefx/validator-web)\n\n# validator-web\n\n### 特性\n\n- 前后端验证框架，设计精巧、使用简单\n- 支持SpringMVC、Struts2、Servlet\n- Java验证代码自动生成JavaScript前端验证代码\n- 统一前后端验证规范\n- 支持自定义验证规则\n- 支持对自定义数据验证，默认支持：form、json、xml\n- 支持分组验证\n- 支持BeanValidation扩展（提供HibernateValidation实现）\n- 支持国际化消息模板，模板支持EL表达式\n\n### 安装\n\n```cmd\ngit clone https://github.com/devefx/validator-web.git\ncd validator-web\nmvn clean install -Dmaven.test.skip\n```\n\n如果你使用 Maven,那么在 pom.xml 中加入下面的代码即可:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.devefx\u003c/groupId\u003e\n    \u003cartifactId\u003evalidator-web\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.1-release\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### 配置验证器\n\n以下配置均使用默认配置，为了确保代码在使用模型前已经被执行，请将代码放在ServletContextListener.contextInitialized中保证容器启动完成时被调用（推荐使用Spring进行配置）\n\n```java\nValidatorConfig validatorConfig = new ValidatorConfig();\n\t\t\nValidatorFactoryImpl validatorFactory = new ValidatorFactoryImpl();\nvalidatorFactory.setValidatorConfig(validatorConfig);\n\nValidator validator = validatorFactory.buildValidator();\n\nValidatorUtils.setValidator(validator);\n```\n\n### 创建验证模型\n\n```java\nimport org.devefx.validator.Validation;\nimport org.devefx.validator.ValidationContext;\nimport org.devefx.validator.constraints.Email;\nimport org.devefx.validator.constraints.Length;\nimport org.devefx.validator.constraints.NotEmpty;\nimport org.devefx.validator.script.annotation.ScriptMapping;\n\n@ScriptMapping(\"login\")\npublic class LoginValidation implements Validation {\n    @Override\n    public void initialize(ValidationContext context) {\n        context.constraint(\"email\", new NotEmpty());\n        context.constraint(\"email\", new Email());\n        context.constraint(\"password\", new NotEmpty());\n        context.constraint(\"password\", new Length(4, 20));\n    }\n}\n```\n\n### Java中使用验证模型\n\nSpringMVC 示例（需要配置SpringValidatorInterceptor拦截器）\n\n```java\n@Controller\npublic class LoginController {\n    @Valid(value=LoginValidation.class)\n    @RequestMapping(\"/login\")\n    public void login() {\n        // ...\n    }\n}\n```\n\nStruts 示例（需要配置Struts2ValidatorInterceptor拦截器）\n\n```java\npublic class LoginAction extends ActionSupport {\n    @Valid(value=LoginValidation.class)\n    public void login() {\n       // ...\n    }\n}\n```\n\nServlet示例（Servlet需要继承AbstractValidatorHttpServlet）\n\n```java\n@Valid(value=LoginValidation.class)\n@WebServlet(name=\"loginServlet\", urlPatterns=\"/login\")\npublic class LoginServlet extends AbstractValidatorHttpServlet {\n    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {\n        // ...\n    }\n}\n```\n### HTML中使用验证模型\n\n如果要在HTML中使用，需要在web.xml中进行配置。 `scan-package`：扫描包里面的 Validation 类，映射出JavaScript验证模型（使用@ScriptMapping注解的Validation才会进行映射）\n\n（springmvc可以简写配置，请参考[SpringMVC Configuration](https://github.com/devefx/validator-web/blob/master/docs/springmvc/getting-started.md)）\n\n```xml\n\u003cservlet\u003e\n    \u003cservlet-name\u003escriptSupport\u003c/servlet-name\u003e\n    \u003cservlet-class\u003eorg.devefx.validator.web.servlet.ScriptSupportServlet\u003c/servlet-class\u003e\n    \u003cinit-param\u003e\n        \u003cparam-name\u003escan-package\u003c/param-name\u003e\n        \u003cparam-value\u003eorg.my.validation\u003c/param-value\u003e\n    \u003c/init-param\u003e\n\u003c/servlet\u003e\n\u003cservlet-mapping\u003e\n    \u003cservlet-name\u003escriptSupport\u003c/servlet-name\u003e\n    \u003curl-pattern\u003e/va/*\u003c/url-pattern\u003e\n\u003c/servlet-mapping\u003e\n```\n\n在HTML代码中加入以下代码，form在提交时若不满足验证模型的约束将会阻止提交并自动提示错误\n\n （`validate`的使用方法，请参考[JavaScript Documentation](https://github.com/devefx/validator-web/blob/master/docs/validator-js.md)）\n\n```html\n\u003c!-- 依赖库 --\u003e\n\u003cscript type=\"text/javascript\" src=\"/va/lib/jquery.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"/va/lib/jquery.form.js\"\u003e\u003c/script\u003e\n\u003c!-- 核心库 --\u003e\n\u003cscript type=\"text/javascript\" src=\"/va/validator.js\"\u003e\u003c/script\u003e\n\u003c!-- 验证器 --\u003e\n\u003cscript type=\"text/javascript\" src=\"/va/validation-js/login.js?locale=cn\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\"\u003e\n    $(function() {\n        $(\"form\").validate({\n            language: 'cn'\n        });\n    });\n\u003c/script\u003e\n```\n\n### 演示效果\n\n（以下为 [SpringMVC Example](https://github.com/devefx/validator-web/tree/master/example/springmvc) 的运行效果）\n\n![example](example/example.gif)\n\n### 配置说明\n\n- [Servlet Configuration](https://github.com/devefx/validator-web/blob/master/docs/servlet/getting-started.md)\n- [SpringMVC Configuration](https://github.com/devefx/validator-web/blob/master/docs/springmvc/getting-started.md)\n- [Struts Configuration](https://github.com/devefx/validator-web/blob/master/docs/struts/getting-started.md)\n\n### 文档\n\n- [JavaScript Documentation](https://github.com/devefx/validator-web/blob/master/docs/validator-js.md)\n\n### 示例\n\nhttps://github.com/devefx/validator-web/tree/master/example\n\n### 协议\n\nhttps://www.apache.org/licenses/LICENSE-2.0.txt\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevefx%2Fvalidator-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevefx%2Fvalidator-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevefx%2Fvalidator-web/lists"}