使用jsf绑定HashMap内的字段时为null值

使用jsf绑定HashMap内的字段时为null值,jsf,primefaces,hashmap,el,cdi,Jsf,Primefaces,Hashmap,El,Cdi,我有一个请求范围的CDI管理bean(也尝试使用jsf管理bean,但问题相同!): 我已经使用jsf编写了一个composit组件,并将字段绑定到textbox和calendar,我想访问hashmap中的字段并设置一些值: #{myController.modelMap['CONSTANST_1'].type} #{myController.modelMap['CONSTANST_1'].date} #{myController.modelMap['CONSTANST_2'].type}

我有一个请求范围的CDI管理bean(也尝试使用jsf管理bean,但问题相同!):

我已经使用jsf编写了一个composit组件,并将字段绑定到textbox和calendar,我想访问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}
但是对于常数_1,只有前两行有效,对于其他两个常数,type和date为null! 我在firebug中看到,值被正确地发送到服务器,但映射中的字段没有设置!
顺便说一下,我正在使用ajax中的primefaces命令按钮将数据发送到服务器。

最终我找到了问题所在。 我有嵌套表单!!! 一个表单包装我的复合组件,一个表单使用我的复合组件

public class MyModel{

private String type = "";
private Date date;

//constructor, getter and setter methods
}
#{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}