如何用jsp配置jsf



我想在jsp中使用jsf标签。如何做到这一点?我用jsf依赖配置了pom文件,如下所示

<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.0.3</version>
</dependency>
<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-impl</artifactId>
    <version>2.0.3</version>
</dependency>

,并在web.xml

中添加了以下内容
<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>*.jsp</url-pattern>
</servlet-mapping>
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

部署war文件后,我得到java.lang.NullPointerException

您的FacesServlet URL模式错误。它不应该覆盖JspServlet中的一个。这样jsp就永远不能运行(因此JSF也永远不能使用它们)。

FacesServlet URL模式应该是不同且唯一的。以*.jsf为例。

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

说,如果您更喜欢遗留的JSP而不是它的后继Facelets,那么您将会错过许多由Facelets提供的出色的模板和合成特性。我强烈建议您重新考虑对JSF 2.0视图技术的奇怪选择。

我想你做错了。JSF是一个框架,其原理与JSP不同。

您可以让JSF和JSP一起工作,但这是另一种方式——您配置JSF使用JSP作为其视图技术。但你不应该这样做,除非你非常清楚你为什么需要它。默认视图技术是Facelets,它更适合JSF。

JSF是一个框架,而jsp只是一个文件。是的,您也可以在JSF框架中使用jsp文件,而无需使用最强大的工具Facelets。在JSF中使用Facelets只能使用xhtml文件。

如果您仍然想使用jsp文件,那么您必须使用核心servlet或使用不带facelets的JSF。

相关内容

  • 没有找到相关文章

最新更新