2013-08-26 68 views
0

我使用的是struts 2.我有一個包含一些布爾值的對象。我有一個HashMap,其中包含許多由某個鍵定義的以前的對象。struts2從Form中填充地圖的「value」對象的帖子

在我的jsp表中填充單選按鈕。地圖中每個鍵的一行。 當我回發表單時,我想保存用戶設置的選項。但地圖似乎並沒有填充。

我的代碼是這樣的:

MyObject (with two boolean parameters) 

    private Map<String, MyObject> ... (with getter & setter). 

在我的JSP生成的HTML是:

<input type="radio" name="myMap[123].booleanParameter1" id="someId" 
checked="checked" value="true"> 

etc 

有人能就如何單選按鈕的「名稱」應該被設定成支柱幫助可以填充地圖?


public class MyObject implements Serializable{ 

    private Boolean booleanParameter1; 
    private Boolean booleanParameter2; 

getters & setters here 
} 

Map<String,MyObject> myMap ... in Action 

JSP ...

<s:iterator ...iterates default map values> 

<s:radio label="parameter1" name="myMap['%{key}'].booleanParameter1" list="#{'true':'Yes','false':'No'}" value="%{value.booleanParameter1}" /> 
<s:radio label="parameter2" name="myMap['%{key}'].booleanParameter2" list="#{'true':'Yes','false':'No'}" value="%{value.booleanParameter2}" /> 

</s:iterator> 
+0

你的鑰匙'123'不是一個字符串。 –

+0

當你的動作被執行時,你沒有填充它嗎? –

+0

應該是'myMap ['123']。booleanParameter1'。 –

回答

0

發現的解決方案。類「MyObject」沒有默認構造函數。 Struts/ognl需要默認的構造函數來創建一個對象。