网上有文章说不能通过JSTL访问LazyDynaBean
http://hi.baidu.com/suofang/blog/item/87006763fc4e697b0c33faea.html其实是不正确的
在LazyDynaBean 源码中有一个 getMap,在该方法中有下面的注释:
DynaBean 源码中有一个 getMap,在该方法中有下面的注释:/**
* Return a Map representation of this DynaBean.
*
* This, for example, could be used in JSTL in the following way to access
* a DynaBean's fooProperty
:
*
${myDynaBean.map.fooProperty}
*
* @return a Map representation of this DynaBean
*/
public Map getMap() {
// cache the Map
if (mapDecorator == null) {
mapDecorator = new DynaBeanMapDecorator(this);
}
return mapDecorator;
} 通过
${myDynaBean.map.fooProperty}的方式是可以访问的.
JSTL对于map的访问是通过 get() 方法,而对于非map的访问则是通过 get属性名称() 方法进行的