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属性根本不存在。所以我正试图找到最好的方法来处理这个问题,到目前为止我已经想出了
- 使用JS并设置一个隐藏的文本框,而不是实际的文本框 -我不想这样做,因为对于每个新属性,我都需要编辑JS
- 添加具有默认值的枚举
- 创建某种过滤器
有谁有更好的想法或是一个选择的粉丝吗
处理代码如下
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 楼答案
为什么不把默认值放在映射中(false和0),并用请求参数中的值(如果存在)覆盖它们呢