@Unwrap 的意思有些不清晰
|
wincheer
2007-12-28
在使用Restful功能的时候,看到了这个注释。它用来注释一个方法,有些不大清楚到底是什么意思。
查阅了一下Seam参考文档,有这么一些解释: 1、@UnWrap注释告诉Seam返回被注释方法的返回值到客户端,而不是组件本身。 2、任何包含@Unwrap方法的组件都是管理器组件。该方法返回客户端可见的值,并且在每次引用上下文变量的时候被调用 <h:dataTable value="#{blog.recentBlogEntries}"......,可是blog组件中根本没有recentBlogEntries这个数据集合,只有一个 @Unwrap public Blog getBlog()...... 哪位先行者来解释一下使用心得? |
|
|
pf_miles
2008-04-23
假如有如下代码:
@Local
@Stateful(scope=SESSION)
@Name("appConfigAction")
public class AppConfigActionImpl implements Serializable, AppConfigAction {
private static final long serialVersionUID = 6779263431382170308L;
@Unwrap
public Something getAppConfig() {
return new Something();
}
}
那么在session环境中被命名为"appConfigAction"的对象将是一个"Something"对象而不是"AppConfigActionImpl"这个组件本身。 这就是所谓的Component Mngr模式,AppConfigActionImpl管理着"Something"这个组件但(while)它自己却对客户端不可见。 |
|
|
yourenyouyu2008
2008-04-28
"#{blog}"得到的是Blog对象,而List<BlogEntry> getRecentBlogEntries()是Blog的方法,所以"#{blog.recentBlogEntries}"得到的就是List<BlogEntry>。
seam获取“blog”时,获取的不是BlogService组件本身,而是被@Unwrap注释的方法的结果。 |

