带有Tomcat的JSF WebApp(哪个版本?)

问题描述 投票:0回答:1

我想开发一个JSF 2 Web应用程序,但是我对设置环境文件(即web.xml和faces-config.xml)感到困惑

我想使用JSF 2(.xhtml),Tomcat 9.0和Open JDK 11.0.2

我已经看到此页面:http://tomcat.apache.org/whichversion.html,但我不清楚各列的确切含义,尤其是(对于Tomcat 9.0.31行)

Servlet Spec 4.0:这是否意味着我必须在web.xml文件中设置web-app version =“ 4.0”?JSP Spec 2.3:我应该设置什么?EL 3.0规范:这是否意味着我必须在faces-config.xml文件中设置faces-config版本=“ 3.0”?

谢谢!

tomcat jsf version
1个回答
0
投票

Servlet Spec 4.0:这是否意味着我必须在web.xml文件中设置web-app version =“ 4.0”?

JSP Spec 2.3:我应该设置什么?

没事。 JSP版本与Servlet版本紧密相关。因此,web.xml4.0可以激活JSP 2.3。

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    version="4.0"
>
    <!-- Config here. -->
</web-app>

EL 3.0规范:这是否意味着我必须在faces-config.xml文件中设置faces-config版本=“ 3.0”?

绝对不是。 EL API不是JSF API。 EL版本也与Servlet版本并驾齐驱。因此,web.xml4.0可以激活EL 4.0。

faces-config.xml版本表示JSF API版本。但是Tomcat根本没有附带JSF。您必须手动安装。当前可用的最新JSF API版本是2.3,因此您必须将faces-config.xml设置为2.3

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_3.xsd"
    version="2.3"
>
    <!-- Config here. -->
</faces-config>

[请注意,Tomcat也不附带JSTL和CDI,而JSF也需要它们。因此,您还必须手动安装它们。或者,更好的是,选择一个普通的JEE服务器,而不是准系统的servlet容器。

另请参见:

© www.soinside.com 2019 - 2024. All rights reserved.