JSF 2.0阅读笔记:视图状态 (三)
(续 JSF 2.0阅读笔记:视图状态 (二))
在StateHelper的javadoc上明确声明:
Object put(Serializable key, String mapKey, Object value);void add(Serializable key, Object value);Object remove(Serializable key, Object valueOrKey);
其中,三参数的put方法针对类型为Map的属性,调用该方法将获取到一个名称为key,类型是Map<String, Object>的属性,如果没有该属性则创建之。并在其中加入键值为mapKey,值为value的元素。同理,双参数的add与remove方法则针对类型为List的属性。以上三个方法均应保证对增量视图状态的处理。当然,这只是个解决大部分场景的不完全解决方案,比如说我要有个类型是Set的属性,就没招了,只能扩展StateHelper接口来实现。感觉上API上带了这三个方法主要还是起到示范作用。