2012-01-03 49 views
0

所以這裏是交易我有一組屬性是複選框。兩者都是HTML複選框,但如果作爲otherone檢查= 1(不知道如何逃生所以出來的地方引號是作秀)如何處理從頁面到Servlet的數據映射

"<"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. 建立某種形式的過濾器

任何人有更好的想法或一個選項的粉絲嗎?

處理代碼是在地圖如下

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; 
} 

回答

2

你爲什麼不只是把默認值(假,0),並與來自請求參數的值將覆蓋他們是否存在?

+0

這就是我獨立決定的。我仍然對其他可能的選擇感興趣,可能是重新考慮採用一項公約。 – Jackie 2012-01-04 00:13:42