JSF标记未呈现

时间:2013-04-27 14:40:00

标签: java jsf web-applications jsf-2

我正在启动一个JSF项目(这是我第一次使用JSF)而且我在渲染标记方面遇到了问题。我正在Eclipse中开发并使用TomCat作为服务器。

我正在使用此网址访问该文件:http://localhost:8080/DeutschAkademie/login.jsp和 据我所知,<h:form>标记应呈现为<form>,而是呈现为<h:form>。有什么想法吗?

4 个答案:

答案 0 :(得分:9)

两个建议:

  1. 更新Faces Servlet的URL模式。默认配置可以是*.jsp(无需使用*.faces或其他内容。不过,我建议使用*.xhtml

  2. JSF 2适用于Facelets,因此您不再需要使用旧的JSP。通过阅读您的login.jsp页面内容,您可以将扩展名从jsp重命名为xhtml,它将起作用。

  3. 基于这些, web.xml 将如下所示:

    <web-app>
        <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>
        <welcome-file-list>
            <welcome-file>login.xhtml</welcome-file>
        </welcome-file-list>
    </web-app>
    

    拥有login.xhtml档案。

    要访问您的网页,您只需在浏览器地址栏中填写http://localhost:8080/DeutschAkademie/login.xhtml

    相关:


    编辑:

    根据项目图片, WEB-INF / lib 文件夹是干净的。你应该删除那里的JSF 2库。添加它们,重新编译项目并再次尝试。

答案 1 :(得分:2)

创建项目时,将为您生成web.xml,默认情况下,此文件中的servlet-mapping将如下所示:

 <servlet-mapping>
 <servlet-name>Faces Servlet</servlet-name>
 <url-pattern>/faces/*</url-pattern>
 </servlet-mapping>

您希望将所有.xhtml个文件放在名为faces的文件夹下 因此,您可以在faces下创建名为WebContent的此文件夹,并将.xhtml文件放在那里,然后调用您的应用http://localhost:8080/DeutschAkademie/faces/login.xhtml
或者您可以编辑http://localhost:8080/DeutschAkademie/faces/login.xhtml并将servlet-ammping更改为

web.xml

并致电您的申请 <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping>
上面也提到过这些解决方案。

答案 2 :(得分:0)

将您的web.xml修改为

<web-app>
<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>*.faces</url-pattern>
<url-pattern>/faces/</url-pattern>
</servlet-mapping>
</web-app>

将您的文件重命名为login.xhtml

http://localhost:8080/DeutschAkademie/faces/login.xhtml

打开您的文件

答案 3 :(得分:0)

添加<url-pattern>*.xhtml</url-pattern>后,请确保您的文件扩展名为.xhtml,否则将无效。