春天的hashmap验证

时间:2015-05-31 07:55:16

标签: spring validation

我的hashmap是:

    HashMap h = new HashMap();
    HashMap h2 = new HashMap();
    List<HashMap> lh = new ArrayList<HashMap>();
    HashMap ch;

    lh = new ArrayList<HashMap>();
    ch = new HashMap();
    ch.put("op", "==");
    ch.put("value", "20dd1");
    lh.add(ch);
    h2.put("lOCATION", lh);



    lh = new ArrayList<HashMap>();
    ch = new HashMap();
    ch.put("op", ">=");
    ch.put("value", "1239");
    lh.add(ch);

    ch = new HashMap();
    ch.put("op", "<=");
    ch.put("value", "1234");
    lh.add(ch);
    h2.put("invNO", lh);




    lh = new ArrayList<HashMap>();
    ch = new HashMap();
    ch.put("op", ">=");
    ch.put("value", "1239");
    lh.add(ch);

    ch = new HashMap();
    ch.put("op", "<=");
    ch.put("value", "1234");
    lh.add(ch);
    h2.put("IssDate", lh);



    h.put("Invoice", h2);

我想验证这个hashmap(搜索jsp)有两个条件:

1)类型检查(int / double / float等) 2)范围检查就像入门发票号码。发票号码到

我的验证功能是:(工作)

1) Iterator iterator = typeCh.entrySet().iterator();
    while (iterator.hasNext()) {
        Map.Entry mapEntry = (Map.Entry) iterator.next();
        String key = (String) mapEntry.getKey();
        if (key.equals(field)) {
            String type = (String) mapEntry.getValue();
            if (type.equals("intValidator")) {
                try {
                    sent.put(field, "OK: " + Integer.parseInt(value));
                } catch (Exception e) {
                    sent.put(field, "must be 0-9");
                }
            } else if (type.equals("decimalValidator")) {
                try {
                    sent.put(field, "OK: " + Double.parseDouble(value));
                } catch (Exception e) {
                    sent.put(field, "must be double");
                }
        }

    }

2) int from = Integer.parseInt(val.get(1));
    int to = Integer.parseInt(val.get(2));

    if (from > to) {
        sent.put(field, "from must be less than to");
    } else {
        sent.put(field, "OK");
    }

我想在春天创建这些类型的验证。

我该怎么做? 请帮助!!

1 个答案:

答案 0 :(得分:0)

您可以在spring应用程序上下文中实现HashMap,并使用以下if (isset($this->request->get['limit']) && (int)$this->request->get['limit']) { 在IOC中共享。为此,首先在架构中包含util:map(在spring配置文件中)。

xmlns:util

然后定义你的地图:

  xmlns:util="http://www.springframework.org/schema/util"

然后在你的java源代码中:

<util:map id="typeCh"
    key-type="java.Lang.String"
    value-type="java.Lang.String"
    map-class="java.util.HashMap">
</util:map>

填充地图一次并将其发送给具有验证逻辑的类。