【问题标题】:Facelets parsing problem using JBoss v4.2.1使用 JBoss v4.2.1 解析 Facelets 问题
【发布时间】:2011-09-20 11:34:32
【问题描述】:

我有一个包含 jsf 库的 some.xhtml 文件。在<h:body> 标签中,我试图显示 2 个字:

对于第一个我使用纯文本:你好

对于我使用的第二个:<h:outputText value=" there"/>

我希望看到“Hello there”,但页面上只打印了 Hello。所以我假设在 JBoss 4.2.1 中没有以某种方式解析 facelet。它适用于 Apache 7。我该如何修复它。是否必须将某些内容添加到 web.xmlfaces-config.xml 文件中?

提前致谢

附:我这样打开页面:http://localhost:8080/ProjectName/faces/some.xhtml

some.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets">

    <h:head>
        <title>Title that rocks</title>
    </h:head>

    <h:body>
        Hello 
        <h:outputText value=" there" />
    </h:body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
    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_2_5.xsd">
    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>
    <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>
    <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>/faces/*</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

faces-config.xml

<?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_1_2.xsd"
    version="1.2">

</faces-config>

【问题讨论】:

  • 这与 JSTL 完全无关。我编辑了你的问题和标签。 JSTL是一个JSP标准标签库,就是&lt;c:xxx&gt;标签等等。另请参阅download.oracle.com/javaee/5/jstl/1.1/docs/tlddocs您实际上是指“JSF 标签”或“Facelets 标签”,而不是“Facelets JSTL”。

标签: java jsf facelets jboss-4.2.x


【解决方案1】:

JBoss 4.2 附带一个捆绑的 JSF 1.2 实现,默认情况下它总是优先于您包含在 WAR 中的任何 JSF 实现。 JSF 1.2 默认不将 Facelets 识别为视图技术,也不支持任何 JSF 2.0 特定标签,如 &lt;h:body&gt;

要告诉 JBoss 您的 WAR 已经捆绑了 JSF 实现,以便 JBoss 不会将其捆绑的 JSF 1.2 用于您的 webapp,您需要将以下上下文参数添加到您的 web.xml

<context-param>
    <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
    <param-value>true</param-value>
</context-param>

【讨论】:

    【解决方案2】:

    .jsf 后缀或/faces/打开页面 你在 web.xml 中定义过哪个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 2023-03-31
      • 2023-04-03
      • 2011-09-05
      • 2017-09-04
      • 2015-03-31
      相关资源
      最近更新 更多