如何处理从页面到Servlet的数据映射

时间:2012-01-03 22:24:15

标签: java html jsp jstl

所以这是交易我有一组属性是复选框。两者都是HTML复选框,但是其中一个是checked = true,而另一个被检查= 1.(不知道如何逃避,因此不合适的引号仅用于显示)

"<"input type="checkbox" class="attribute" name="trueFalse" value="true"/>

"<"input type="checkbox" class="attribute" name"oneZero" value="1"/>

当没有检查它们时会出现问题,我无法找到传递false或0的信息,而是请求属性不存在。所以我试图找到解决这个问题的最佳方法,到目前为止我已经提出了......

  1. 使用JS并设置隐藏而不是实际的文本框 - 我不想这样做,因为那时我需要编辑JS的每个新属性
  2. 添加具有默认值的枚举
  3. 创建某种过滤器
  4. 任何人都有更好的想法或一个选项的粉丝?

    处理代码如下

    public Map<Utils.Attributes, String> getAttributesFromRequest(HttpServletRequest request, String postfix, String prefix){
        Map<Utils.Attributes, String> returnValue = new HashMap<Utils.Attributes, String>();
        for (Utils.Attributes attr : Utils.Attributes.values()) {
            StringBuilder sb = new StringBuilder();
            sb.append(prefix);
            sb.append(attr.getName());
            sb.append(prefix);
            String value = request.getParameter(sb.toString());
            if(testValue(value)){
                returnValue.put(attr, value);
            }
        }
        return returnValue;
    }
    

1 个答案:

答案 0 :(得分:2)

为什么不直接在地图中放置默认值(false和0),并使用请求参数中的值覆盖它们(如果它们存在)?