我在一个文件中外部化了我所有的Javascript代码和应用程序,为了解析代码中的所有EL变量,我尝试使用BalusC solution 2作为对 this SO question的回答。
我尝试在被请求时使用Faces Servlet来处理JS文件。问题来了,当我这样设置时,找不到JS文件,并且我不能猜测问题在哪里。这是我的web.xml
<mime-mapping>
<extension>js</extension>
<mime-type>application/x-javascript</mime-type>
</mime-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/js/myapp-functions.js</url-pattern>
</servlet-mapping>如果我试图通过http://localhost:8080/myappname/js/myapp-functions.js获取文件,我得到一个404错误。文件就在那里(仔细检查)。如果我删除JS文件的映射,我可以正常获取该文件(但如上所述,EL变量不会被解析)。
有什么建议吗?提前谢谢。
发布于 2010-07-06 18:20:00
实际的文件扩展名应与javax.faces.DEFAULT_SUFFIX匹配,后者默认为*.xhtml。请注意,您需要将整个页面包装在一个<script></script>中,否则Facelets的SAX解析器会对格式不正确的文档发出警告。
https://stackoverflow.com/questions/3184914
复制相似问题