3

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

我正在使用此 url 访问该文件:http://localhost:8080/DeutschAkademie/login.jsp据我所知,该<h:form>标签应呈现为<form>,但它改为呈现为<h:form>. 有任何想法吗?

4

4 回答 4

10

两个建议:

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

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

基于这些,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 库放在那里。添加它们,重新编译您的项目,然后再试一次。

于 2013-04-27T15:46:44.970 回答
2

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

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

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

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

而不是打电话给你的应用程序http://localhost:8080/DeutschAkademie/login.xhtml
上面也提到了这些解决方案。

于 2014-08-03T12:13:32.690 回答
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

于 2013-04-27T14:49:31.687 回答
0

添加后<url-pattern>*.xhtml</url-pattern>,请确保您的文件具有扩展名 .xhtml,否则将无法正常工作。

于 2016-03-22T21:40:31.730 回答