From 66586efe6be9850acbdc07f040315754a67b6bb6 Mon Sep 17 00:00:00 2001 From: chuyan <1047381936@qq.com> Date: Sat, 22 Feb 2020 21:40:26 +0800 Subject: [PATCH] =?UTF-8?q?validator=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ase/configure/ActivityFormConfigure.java | 9 ++---- .../ase/controller/ActivityController.java | 5 ++-- .../ase/validator/WebFormValidator.java | 30 ++++--------------- 3 files changed, 11 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/codesdream/ase/configure/ActivityFormConfigure.java b/src/main/java/com/codesdream/ase/configure/ActivityFormConfigure.java index 0ca3161..8fb2c9f 100644 --- a/src/main/java/com/codesdream/ase/configure/ActivityFormConfigure.java +++ b/src/main/java/com/codesdream/ase/configure/ActivityFormConfigure.java @@ -11,7 +11,7 @@ import java.util.Set; @Component public class ActivityFormConfigure { - private static final Set stdActivityForm = new HashSet(){{ + private final HashSet stdActivityForm = new HashSet(){{ add("title"); add("creator"); add("type"); @@ -29,11 +29,8 @@ public class ActivityFormConfigure { add("assist-manager"); add("attendance"); }}; - public final static Map> stdActivityMap; - static { - stdActivityMap = new HashMap() {{ - put("activity", stdActivityForm); - }}; + public HashSet getStdActivityForm() { + return stdActivityForm; } } diff --git a/src/main/java/com/codesdream/ase/controller/ActivityController.java b/src/main/java/com/codesdream/ase/controller/ActivityController.java index 421f699..e299297 100644 --- a/src/main/java/com/codesdream/ase/controller/ActivityController.java +++ b/src/main/java/com/codesdream/ase/controller/ActivityController.java @@ -31,11 +31,12 @@ public class ActivityController { ASESpringUtil aseSpringUtil = new ASESpringUtil(); ActivityFormConfigure activityFormConfigure = aseSpringUtil.getBean(ActivityFormConfigure.class); WebFormValidator webFormValidator = aseSpringUtil.getBean(WebFormValidator.class); - HashMap checkResult = webFormValidator.check(activityFormConfigure.stdActivityMap, parameterMap); - if(checkResult.get("activity").equals(false)){ + if(!webFormValidator.check(activityFormConfigure.getStdActivityForm(), parameterMap)){ throw new InvalidFormFormatException("Invalid activity form."); } + return "act_created"; } } + diff --git a/src/main/java/com/codesdream/ase/validator/WebFormValidator.java b/src/main/java/com/codesdream/ase/validator/WebFormValidator.java index 9ab4dc5..e710ce3 100644 --- a/src/main/java/com/codesdream/ase/validator/WebFormValidator.java +++ b/src/main/java/com/codesdream/ase/validator/WebFormValidator.java @@ -8,32 +8,12 @@ import java.util.*; @Component public class WebFormValidator { - /** - * 传入标准表单所具有的属性set以及网页表单的属性set,确保map中的key和value一一对应 - * 检查的时候会将标准表单和网页表单两个map中key相同的value进行完全匹配比较 - * 返回一个map,不同表单有不同的合法情况 - * 支持一次处理多个表单,请务必保持对应表单的标准和网页map中的key一样 - * @return 封装在一个map里的不同表单对应的合法情况 - */ - public HashMap check(Map> stdFormMap, Map webFormMap){ + public boolean check(Collection stdForm, Map webFormMap){ - HashMap result = new HashMap(); - Set stdKey = stdFormMap.keySet(); - Set webKey = webFormMap.keySet(); - - for(String key : webKey){ - if(stdKey.contains(key)){ - Set stdSet = stdFormMap.get(key); - String[] webForm = webFormMap.get(key); - List webList = new ArrayList<>(); - Collections.addAll(webList, webForm); - if(stdSet.containsAll(webList)){ - result.put(key,true); - } - else result.put(key,false); - } + Collection webForm = webFormMap.keySet(); + if(stdForm.containsAll(webForm)){ + return true; } - - return result; + return false; } }