我想开发一个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”?
谢谢!
Servlet Spec 4.0:这是否意味着我必须在web.xml文件中设置web-app version =“ 4.0”?
是
JSP Spec 2.3:我应该设置什么?
没事。 JSP版本与Servlet版本紧密相关。因此,web.xml
的4.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.xml
的4.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容器。