代码之家  ›  专栏  ›  技术社区  ›  Daniel Szalay

如何在JSF应用程序中引用文件资源

  •  8
  • Daniel Szalay  · 技术社区  · 15 年前

    我想从bean动态引用一个xsd,这是怎么可能的?我已经将XSD添加到项目中,所以它位于GlassFish域的某个位置。

    1 回复  |  直到 11 年前
        1
  •  16
  •   McDowell    15 年前

    使用 ExternalContext .

    如果您想在bean中加载资源,可以通过 getResource getResourceAsStream :

    InputStream stream = FacesContext.getCurrentInstance().getExternalContext()
        .getResourceAsStream("/foo.xsd");
    

    如果要返回资源的URL,请使用 getRequestContextPath 要获取相对于主机根目录的路径,请执行以下操作:

    ExternalContext ext = FacesContext.getCurrentInstance()
        .getExternalContext();
    String path = ext.getRequestContextPath();
    path += path.endsWith("/") ? "foo.xsd" : "/foo.xsd";
    String url = ext.encodeResourceURL(path);