我在 JSF 页面中呈现#{}
时遇到问题。
我正在使用 Mojarra 2.1.5 和 JBoss 7
例:
JSF 页面
<h:inputText value="#{bean.name}"/>
人脸配置.xml
<managed-bean>
<managed-bean-name>bean</managed-bean-name>
<managed-bean-class>com.Bean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
网页输出
#{bean.name}
问题
- 为什么我没有从豆子中看到正确的值?
- 为什么我得到的是字符串而不是
nothing
?
更新
web.xml
内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<!--
Automatically created by Apache Tomcat JspC.
-->
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<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>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
谢谢
根据您的更新问题:
我正在使用 Mojarra 2.1.5 和 JBoss 7
根据您的评论:
在我的 WEB-INF/lib 目录中,我只有:jsf-api-1.2_09、jsf-facelets-1.1.14.jar 和 jsf-impl-1.2_09.jar...老实说,我不太确定我是否需要所有这些......在网络应用程序标签中,我有 2.5 版
JBoss 7 已经附带了 JSF 2.x 实现。您不需要自己提供任何 JSF 库,当然不是只会冲突所有内容的旧规范版本。从 Web 应用中删除这些jsf-*.jar
文件。此外,从JSF 2.0开始,Facelets被捆绑在JSF库中。同时删除jsf-facelets-*.jar
文件。
JBoss 7 是一个兼容 Servlet 3.0 的容器。重新声明您的web.xml
以符合 Servlet 3.0:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!-- Config here. -->
</web-app>
此外,您还需要确保faces-config.xml
符合 JSF 2.0:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<!-- Config here. -->
</faces-config>
请确保您没有阅读针对 JSF 1.x 的教程。JSF 2.x 是一个重大的规范更改。确保您正在阅读 JSF 2.x 目标资源/书籍/教程。您可以在我们的 JSF 标签 wiki 页面底部找到有用的链接。