JSF仅适用于.xhtml结尾

Thr*_*ark 4 jsf facelets java-ee

我从JSF网站的编程开始.目前所有文件都有.xhtml结尾.当我去http:// localhost:8080/myProject/start.jsf一切都很好.但是当我将文件从start.xhtml重命名为start.jsf时,我变成了NoClassDefFound错误.

我的错是什么?

  <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>
Run Code Online (Sandbox Code Playgroud)

Boz*_*zho 6

你必须改变javax.faces.DEFAULT_SUFFIX参数(在web.xml中)

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.jsf</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

但是,这不建议 - 使用.xhtml.jsp文件.请注意,您可以.jsp毫无问题地使用facelets(例如,如果IDE的自动完成不起作用.xhtml).

另请注意:

  • faces servlet mapping确定如何从http透视图引用jsf页面
  • DEFAULT_SUFFIX参数表示什么是文件的扩展名.