带有inputFile组件的JSF和CDI

时间:2014-04-15 12:19:26

标签: java jsf cdi

我使用<h:inputFile>组件为上传文件创建了一个简单的xhtml页面。一切正常。在托管bean中,我使用了Logger的依赖注入。我使用了工厂类和createLogger()方法来为Logger类的对象启用注入。 一切都还可以,但是如果托管bean中没有@Model注释,则无效。

有人可以解释@Model注释的含义。

我无法在互联网上找到正确的解释。其他注释的创建说明,如@Session@Request@Application等。

@Model注释有什么作用?

1 个答案:

答案 0 :(得分:1)

Hej vmaric,

@Model == @RequestScoped + @Named

它直接将Backing Bean公开给您的JSF 2JSP,并且在servlet请求结束后它的上下文将被销毁。

所以它不应该用于实体。

以下是Weld Reference Guide

的提示

请注意,控制器bean是请求范围的并且已命名。由于这种组合在Web应用程序中非常常见,因此在CDI中有一个内置的注释,我们可以将其用作速记。当(类型)注释@Model在类上声明时,它会创建一个请求范围的命名bean。