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

时间:2012-06-10 07:24:34

标签: jsf primefaces hashmap el cdi

我有一个请求范围的CDI管理bean(也试过jsf托管bean但是同样的问题!):

@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编写了一个composit组件,并将字段绑定到文本框和日历,我想访问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的前两行和其他两个常量,type和date为null! 我在firebug中看到值正确地发送到服务器但是地图中的字段没有设置! 顺便说一句,我正在使用带有ajax的primefaces命令按钮将数据发送到服务器。

1 个答案:

答案 0 :(得分:1)

最后我遇到了问题所在。 我有嵌套表格! 一个包装我的复合组件的表单和一个使用我的复合组件的表单!