我试图从CDI Bean应用程序范围内读取web.xml中包含的context-param属性。不幸的是,返回null。
@ApplicationScoped
@Named
public class Utils {
public String getUpdateFile() {
FacesContext ctx = FacesContext.getCurrentInstance();
return ctx.getExternalContext().getInitParameter("update.file");
}
}
和web.xml:
<context-param>
<param-name>update.file</param-name>
<param-value>update.zip</param-value>
</context-param>
这是我的错吗?任何解决方法?我的环境是WildFly 8.1.0
答案 0 :(得分:4)
只需注入 Servlet上下文即可。 ServletContext可用作应用程序范围的bean。它可以安全地注入任何CDI bean,如下所示:
@Inject
private ServletContext context;
public String getUpdateFile() {
return context.getInitParameter("update.file");
}
在这里编写了一个迷你tutorial。