如何在JSF中从服务器中的JAR获取图像或js(对于自定义组件)



我做了一个自定义JSF组件(它看起来像一个组合框(icefaces selectonemenu)),但它使用了一对图片(png)和一点javascript。我把所有的东西都放到jar中,这样开发人员就可以把它作为一个jar拷贝到web-inf/lib文件夹中。图像和js只是为这个自定义组件,所以我不能让他们把这个图像和js在他的项目,它必须在我的jar。

我把所有的东西都放在一起,它的工作几乎很棒,只是图像和JS,我没有让它们工作。我不知道怎么把它们放在罐子里。我可以让它们工作,只要它们是应用程序的一部分,但不是jar的一部分。例如,我应该如何在我的encodebegin代码中获得它们?

我正在使用JSF与icefaces 1.8

提前感谢!!

如果您已经使用JSF 2.0,那么当您使用@ResourceDependency@ResourceDependencies注释时,它应该可以很好地工作,它可以根据JAR的/META-INF/resources文件夹解析资源。

在JSF 1。x,你最好的选择是创建一个自定义的"资源servlet",它映射在一个特定的URL模式上,例如/com.nahiko.resources/*,并且只是将资源从类路径流到HTTP响应。基本启动示例:

String path = "/META-INF/resources" + request.getPathInfo();
InputStream input = getClass().getResourceAsStream(path);
OutputStream output = response.getOutputStream();
// ...

文档沿着您的JAR,这个servlet必须被映射。或者,如果您的目标是Servlet 3.0容器,只需添加@WebServlet注释以使其自动注册。

相关内容

  • 没有找到相关文章

最新更新