0

我正在开发一个 JSF 页面,其中包含一个包含大量输入字符串值的表单。我不想在 bean 中为每个 input 创建相应的字段。是否可以使用地图代替。

这是我希望表单输入元素的样子:

<h:inputText value='#{myBean.data["key"]}' /> // or something like this

并且 bean 包含如下映射:

class myBean {
Map data;

...
}
4

1 回答 1

3

如果我创建这样的代码,地图操作的 getter 和 setter 应该是什么样的?

没什么特别的。只是一个标准的 getter,因为您应该始终将其用于模型属性。

public Map<String, Object> getData() {
    return data;
}

setter 不是强制性的,因为它无论如何都不会被使用。EL 将为此使用地图自己的put()方法。您只需要确保地图已经在 bean 的(后)构造函数中预先创建,JSF/EL 不会为您执行此操作。

public MyBean() {
    data = new HashMap<String, Object>();
}
于 2012-09-16T16:32:10.667 回答