我正在将文件中的所有Javascript代码和应用程序外部化,并解析代码中的所有EL变量,我尝试使用BalusC解决方案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变量未解析)。
有什么建议吗?提前谢谢。
答案 0 :(得分:1)
实际文件扩展名应与javax.faces.DEFAULT_SUFFIX
匹配,默认为*.xhtml
。请注意,您需要将整个页面包装在<script></script>
内,否则Facelets的SAX解析器会抱怨文档格式不正确。