Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 JavaEE6中Seam资源Servlet的替代品是什么?_Jsf 2_Java Ee 6_Tomcat7_Cdi - Fatal编程技术网

Jsf 2 JavaEE6中Seam资源Servlet的替代品是什么?

Jsf 2 JavaEE6中Seam资源Servlet的替代品是什么?,jsf-2,java-ee-6,tomcat7,cdi,Jsf 2,Java Ee 6,Tomcat7,Cdi,在我们之前的Seam 2项目中,我们在web.xml中有以下部分用于加载静态资源,如css或img: <servlet> <servlet-name>Seam Resource Servlet</servlet-name> <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class> </servlet> <

在我们之前的Seam 2项目中,我们在
web.xml
中有以下部分用于加载静态资源,如css或img:

  <servlet>
    <servlet-name>Seam Resource Servlet</servlet-name>
    <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Seam Resource Servlet</servlet-name>
    <url-pattern>/seam/resource/*</url-pattern>
  </servlet-mapping>

Seam资源Servlet
org.jboss.seam.servlet.SeamResourceServlet
Seam资源Servlet
/煤层/资源/*
当使用CDI+JSF2时,有什么替代方法?它可以用标准的JavaEE6机制来实现,还是我们需要CDI扩展或任何其他附加库


PS:该项目基于maven并部署在tomcat 7上,因此如果需要一些扩展,我将非常乐意根据依赖关系进行扩展。

Seam 2从来都不是Java EE 5的一部分,因此在Java EE 6中没有“替换”的方法。您可能需要查看Seam 3或Seam 2的任何后续版本

“静态资源”位于标准servlet容器中,该容器的内置默认servlet已经完全自动和透明地处理了该容器。只需将这些文件直接放到publicwebcontent文件夹中(您也可以将JSP/Facelets文件放在那里)

然而,JSF2有一种新的资源处理机制,允许在组件/呈现器中使用
@ResourceDependency
等自动包含资源,但是
FacesServlet
本身以及新的JSF2.0
组件已经考虑到了这一点。然而,我不确定这是否与Seam 2所做的任何事情有关,我从未真正使用过Seam


CDI与这一切关系不大,它是一个bean管理API,而不是一个静态资源管理API。

Mmm,也许你可以要求澄清,而不是说我的问题毫无意义。我只是想解释一下,在以前的一个项目中,我们使用Seam 2,我们手头有SeamResourceServlet来管理资源文件,现在我们有一个基于JSF2+CDI的项目,所以Seam 2的所有内容都不在手边,但仍然是需要的,这就是为什么我要求在标准JSF或扩展中替换该Servlet。具体的问题是css中的图像引用,它们经过FacesServlet,然后就找不到了。你应该询问具体的问题,而不是问一个过于笼统的问题,这个问题本身没有多大意义。然后我会发布这样一个答案:问题是,我从客户那里得到了一个css,应该保持不变。在css中有对图像的引用,这些图像在FacesServlet处理时附加了.jsf,因此不再被找到。因此,问题仍然与最初提出的相同-当我不再使用Seam 2时,通过切换到CDI/JSF2,我可以做什么来获得与SeamResourceServlet相同的功能?然后只使用
而不是
。容器的默认servlet将提供它。