2012-06-10 48 views
0

結合內部HashMap中的字段時,我有一個請求範圍的CDI管理的bean(還與JSF託管bean,但同樣的問題試過!):空值使用JSF

@Named 
@RequestScoped 
public class myController{ 

private HashMap<String, MyModel> modelMap; 

@PostConstruct 
private void init() { 
    logModelMap = new HashMap<String, MyModel>(); 
    logModelMap.put("CONSTANT_1", new MyModel()); 
    logModelMap.put("CONSTANT_2", new MyModel()); 
    logModelMap.put("CONSTANT_4", new MyModel()); 
} 
public HashMap getModelMap() { 
    return logModelMap; 
} 
} 

而且爲MyModel類,這是一個簡單的POJO :

public class MyModel{ 

private String type = ""; 
private Date date; 

//constructor, getter and setter methods 
} 

我已經寫了使用JSF和綁定字段,以TextBox和日曆組合大組成部分,我想訪問內部HashMap的領域和設置一些值:

#{myController.modelMap['CONSTANST_1'].type} 
#{myController.modelMap['CONSTANST_1'].date} 

#{myController.modelMap['CONSTANST_2'].type} 
#{myController.modelMap['CONSTANST_2'].date} 

#{myController.modelMap['CONSTANST_3'].type} 
#{myController.modelMap['CONSTANST_3'].date} 

但constant_1的前兩行有效,其他兩個常量的類型和日期都是null! 我在firebug中看到值正確地發送到服務器,但地圖內的字段沒有設置! 順便說一句,我用ajax的primefaces命令按鈕發送數據到服務器。

回答

1

最後,我得到了問題所在。 我有嵌套的形式! 一個包裝我的複合組件的窗體和一個我使用我的複合組件的窗體!