必须先为项目添加jsf能力并启用facelets支持,否则.xhtml文件无法被facesservlet识别和编译;具体步骤包括:创建dynamic web项目时勾选javaserver faces、右键项目添加jsf capabilities并勾选add facelets support、新建xhtml页面、配置web.xml中*.xhtml映射、部署运行验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在MyEclipse中创建可直接运行的JSF页面并启用Facelets视图技术,必须先确保项目具备JSF能力且正确绑定XHTML解析器,否则新建的.xhtml文件会被当作普通文本处理,无法触发Facelets编译和JSF生命周期。
创建支持JSF的Dynamic Web项目
打开MyEclipse → File → New → Dynamic Web Project → 输入项目名(如jsf-demo)→ 点击Next两次 → 在“Configuration”旁点Modify… → 勾选【JavaServer Faces】 → 点击OK → 勾选Generate web.xml deployment descriptor → Finish。
这一步会自动向web.xml注入FacesServlet配置和faces-config.xml骨架。若跳过勾选JSF,后续添加Facelets将失效,因为Facelets依赖JSF容器初始化。
为项目添加Facelets支持
右键项目 → MyEclipse → Add JSF Capabilities → 保持默认JSF版本(如2.3)→ Next → 勾选【Add Facelets Support】 → Finish。
该操作会在WEB-INF目录下生成facelets-config.xml(或修改web.xml添加*.xhtml映射),同时将facelets-api.jar、facelets-impl.jar等加入构建路径。不勾选此项,新建的index.xhtml将无法被FacesServlet识别,浏览器访问时返回404或原始源码。
创建首个Facelets页面
在WebContent目录下右键 → New → Other → MyEclipse Web → XHTML Page → 输入文件名index.xhtml → 模板选择New XHTML (1.0 transitional) → Finish。
此时编辑器应显示XHTML结构,且顶部有Facelets设计视图标签页。若仍显示JSP编辑器或无Design/Source双模式,请检查上一步是否成功执行——常见失败原因是项目未正确关联JSF Facet。
在Source视图中,将默认内容替换为:
xmlns:h="http://xmlns.jcp.org/jsf/html">
保存文件。注意命名必须以.xhtml结尾,且必须使用h:命名空间前缀,否则Facelets引擎无法解析组件。
配置URL映射使.xhtml可直接访问
打开WEB-INF/web.xml → 找到
若原配置只有
这是关键一步:Facelets默认通过.xhtml后缀触发,不配置该映射,浏览器请求index.xhtml时不会进入FacesServlet,页面将作为静态文件返回,JSF标签完全不生效。
部署并验证页面运行
右键项目 → Run As → Run on Server → 选择已配置的Tomcat或WildFly → Finish。
等待服务器启动完成,在浏览器地址栏输入http://localhost:8080/jsf-demo/index.xhtml → 页面显示"Welcome to JSF with Facelets!"即表示Facelets页面成功加载并渲染。











