0

#{}在 JSF 页面内渲染时遇到问题。

我正在使用 Mojarra 2.1.5 和 JBoss 7

例子:

JSF 页面

<h:inputText value="#{bean.name}"/>

面孔-config.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>

HTML 输出

#{bean.name}

问题

  1. 为什么我看不到 bean 的正确值?
  2. 为什么我得到字符串而不是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> 

谢谢

4

1 回答 1

1

根据您更新的问题:

我正在使用 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 ......老实说我不太确定如果我需要所有这些...在 web-app 标签中我有 2.5 版

JBoss 7 已经附带了一个 JSF 2.x 实现。您不需要自己提供任何 JSF 库,当然不是旧的规范版本,它只会与所有内容发生冲突。从您的 webapp 中删除这些文件。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 页面底部找到有用的链接。

于 2012-05-04T18:50:03.300 回答