【问题标题】:jsf2/primefaces5 in eclipse ID with glassfish server带有 glassfish 服务器的 Eclipse ID 中的 jsf2/primefaces5
【发布时间】:2014-08-13 10:48:20
【问题描述】:

我尝试在 Java EE 项目中使用 primefaces。我将此库的 jar 添加到我的 web-inf>lib 中并将代码集成到 web.xml 但是当我运行该项目时,所有应答器 p: 都没有显示 O.o

这段代码取自 primefaces5 的展示

<!DOCTYPE html >
<html lang="fr"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui" >
<h:head>
    <title>Primefaces</title>
</h:head>
<h:body>

    <h:form>
<h:panelGrid columns="2" style="margin-bottom:10px" cellpadding="5">
    <p:outputLabel for="basic" value="Basic:" />
    <p:selectManyCheckbox id="basic" value="#{checkboxView.selectedConsoles}">
        <f:selectItem itemLabel="Xbox One" itemValue="Xbox One" />
        <f:selectItem itemLabel="PS4" itemValue="PS+" />
        <f:selectItem itemLabel="Wii U" itemValue="Wii U" />
    </p:selectManyCheckbox>

    <h:outputText value="Grid:" />
    <p:selectManyCheckbox id="grid" value="#{checkboxView.selectedCities}" layout="grid" columns="3">
        <f:selectItems value="#{checkboxView.cities}" var="city" itemLabel="#{city}" itemValue="#{city}" />
    </p:selectManyCheckbox>
</h:panelGrid>

<p:commandButton value="Submit" update="display" oncomplete="PF('dlg').show()" icon="ui-icon-check" />

<p:dialog header="Values" modal="true" showEffect="clip" widgetVar="dlg" resizable="false">
    <p:outputPanel id="display">
        <p:dataList value="#{checkboxView.selectedConsoles}" var="console">
            #{console}
        </p:dataList>
        <p:dataList value="#{checkboxView.selectedCities}" var="city">
            #{city}
        </p:dataList>
    </p:outputPanel>
</p:dialog>
 </h:form>
</h:body>
 </html>

我的豆

package Bean;
  import java.util.ArrayList;
  import java.util.List;
  import javax.annotation.PostConstruct;
  import javax.faces.bean.ManagedBean;

  @ManagedBean
  public class CheckboxView {

   private String[] selectedConsoles; 
   private String[] selectedCities;  
   private List<String> cities;

    @PostConstruct
    public void init() {
    cities = new ArrayList<String>();
    cities.add("San Francisco");
    cities.add("London");
    cities.add("Paris");
    cities.add("Istanbul");
    cities.add("Berlin");
    cities.add("Barcelona");
    cities.add("Rome");
    cities.add("Sao Paulo");
    cities.add("Amsterdam");
}

public String[] getSelectedConsoles() {
    return selectedConsoles;
}

public void setSelectedConsoles(String[] selectedConsoles) {
    this.selectedConsoles = selectedConsoles;
}

public String[] getSelectedCities() {
    return selectedCities;
}

   public void setSelectedCities(String[] selectedCities) {
    this.selectedCities = selectedCities;
 }

     public List<String> getCities() {


     return cities;

  }



  }



  the web.xml

 <context-param>  
 <param-name>primefaces.THEME</param-name>  
 <param-value>south-street</param-value>  
  </context-param>
  <filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
  </filter-mapping>

【问题讨论】:

    标签: eclipse jsf-2 primefaces glassfish


    【解决方案1】:

    你能分享你的 web.xml 文件吗?

    它必须有 JSF 的 servlet 定义和映射。

    以下元素必须存在于您的 web.xml 中:

    <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>
    

    请注意,*.xhtml 意味着 Faces Servlet 将处理所有扩展名为 .xhtml 的 JSF 文件,您必须将其更改为您定义的扩展名。

    希望对你有所帮助。

    【讨论】:

    • 谢谢你的回答......是的,我的 web.xml 有所有这些定义。我的项目工作得很好,直到我想使用 primfaces h: an f: balise 工作但 p: (参考primefaces)没有
    • 所以看起来你的构建路径配置不正确,除非它会很好。尝试确保 Primefaces jar 已成功添加到您的构建路径(如果已配置)尝试手动将其添加到 /Webcontent/WEB-INF/lib 文件夹并刷新您的应用程序。
    • 我确实遇到了这个问题:警告:此页面调用 XML 命名空间 primefaces.orgx/ui 声明,前缀为 p,但该命名空间不存在标记库。
    • 你必须确保你的构建路径包含这个 jar 并且你必须清理和构建你的项目然后再试一次。
    • 不幸的是,我已经按照您的建议完成了所有操作,但我仍然遇到同样的错误...我会因此失去理智:\ .. 我创建了一个新库,在其中添加了 primefaces jar我的构建路径,但我的 xhtml 页面 xmlns:p="primefaces.orgx/ui"> 的这一行中仍有下划线
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多