有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

这里是交易,我有一组属性作为复选框。这两个都是HTML复选框,但其中一个选中=true,而另一个选中=1。(不确定如何逃逸,因此不恰当的引用只是为了作秀)

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

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

当它们未被检查时,问题就出现了,我无法找到传递false或0的方法,相反,request属性根本不存在。所以我正试图找到最好的方法来处理这个问题,到目前为止我已经想出了

  1. 使用JS并设置一个隐藏的文本框,而不是实际的文本框 -我不想这样做,因为对于每个新属性,我都需要编辑JS
  2. 添加具有默认值的枚举
  3. 创建某种过滤器

有谁有更好的想法或是一个选择的粉丝吗

处理代码如下

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) 个答案

  1. # 1 楼答案

    为什么不把默认值放在映射中(false和0),并用请求参数中的值(如果存在)覆盖它们呢