【问题标题】:JSF and Primefaces components doesn't render [duplicate]JSF 和 Primefaces 组件不呈现 [重复]
【发布时间】:2013-11-14 08:43:02
【问题描述】:

我在 Eclipse 开普勒上使用 primefaces4.0 和 glassfish4 和 java ee7。
我配置它(将主题和primefaces的jar放在lib和java builpath和类变量上,并将其添加到<htm>和web.xml)但组件根本没有出现。这是我的代码

    <!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:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
 xmlns:p="http://primefaces.org/ui">
    <h:head>
     <meta charset="windows-1256"></meta>
      <title>Connexion</title>
     </h:head>
     <h:body>
      <h:form>
      <fieldset> 
      <p:outputLabel for="email">Adresse email <span class="requis"></span>     </p:outputLabel>    
            <p:inputText id="email" value="" required="true" size="20" maxlength="60"  />
      <p:message id="emailMessage" for="email" errorClass="erreur" />
      <br/>  
       <p:outputLabel for="motdepasse">Mot de passe <span class="requis"></span></p:outputLabel>
      <p:inputSecret id="motdepasse" value="" required="true" size="20" maxlength="20"                       />
        <p:message id="motDePasseMessage" for="motdepasse"
            errorClass="erreur" />
        <br />
        <p:commandButton value="Connexion" action="" ajax="false" />
        </fieldset>
        </h:form>

                    </h:body>
                    </html>

这是我的 web.xml 文件

        <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee       http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1"
        >
        <display-name>Portail</display-name>
        <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        </welcome-file-list>
         <context-param>
         <param-name>primefaces.THEME</param-name>
         <param-value>bootstrap</param-value>
          </context-param>
   <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>*.xhtml</url-pattern>
         </servlet-mapping>

        </web-app>

【问题讨论】:

  • 标准 JSF 工作正常吗?
  • 如何检查?
  • 在您的站点中输入&lt;h:commandButton value="button" /&gt; 并检查是否有按钮显示。
  • 不,它不起作用。
  • 你的jsf文件叫什么?

标签: eclipse jsf jakarta-ee primefaces glassfish


【解决方案1】:

您的文件名是index.html,但在您的web.xml 中您指定只想渲染以.xhtml 结尾的文件。将你的文件重命名为index.xhtml

【讨论】:

  • 该按钮现在可以使用,但它没有使用我在 web.xml 中指定的主题样式
  • 这个样式表在你生成的 html 页面上指向什么? &lt;link type="text/css" rel="stylesheet" href="/project/faces/javax.faces.resource/theme.css?ln=primefaces-" /&gt;
  • 我没有对样式表的引用。实际上在 primefaces 指南中,他们说添加主题的 jar 足以使其正常工作(我正在使用引导主题)
【解决方案2】:

在阅读了No TagLibrary associated to PrimeFaces's namespace 这篇文章后,我明白了为什么组件没有渲染。

我确实将 jar 放在了 lib 中,但我没有正确部署它们,这就是标签无法正常工作的原因。这次我用更多的注意力重复了配置,终于成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2012-07-21
    相关资源
    最近更新 更多