Jsf Primefaces明细表组件未显示

Jsf Primefaces明细表组件未显示,jsf,primefaces,myfaces,Jsf,Primefaces,Myfaces,我是一名JSF2.0新手,我正在尝试构建一个调度程序。 到目前为止,在使用primefaces和JSF标记方面,一切都进展顺利。然而,我很难使用p:schedule标签。 在我进入下一部分并添加事件之前,我只想在列表中的日历(议程)显示在我的页面中。 我的问题是,这段代码不应该至少在我的页面中生成一些东西吗 这是我的scheduleBean.java @ManagedBean(name="scheduler") @ViewScoped public class Schedule

我是一名JSF2.0新手,我正在尝试构建一个调度程序。 到目前为止,在使用primefaces和JSF标记方面,一切都进展顺利。然而,我很难使用p:schedule标签。 在我进入下一部分并添加事件之前,我只想在列表中的日历(议程)显示在我的页面中。 我的问题是,这段代码不应该至少在我的页面中生成一些东西吗

这是我的scheduleBean.java

 @ManagedBean(name="scheduler")
    @ViewScoped
    public class SchedulerBean extends PageCodeBase implements Serializable {

    private static final long serialVersionUID = -1426310201082465397L;
    private String loggedInUser;
    private boolean authorizeduser=false;
    private boolean showUnauthorizeduserMessage=true;
    private String theme;
    private AuthorizeduserManager AUM =  (AuthorizeduserManager)getManagedBean("AuthorizeduserManager");
    private ScheduleModel eventModel;

    public void pageOnLoad(){
        this.setLoggedInUser(getFacesContext().getExternalContext().getRemoteUser());
        this.checkAuthorization();
        this.retriveTheme();
        this.eventModel = new DefaultScheduleModel();
    }

    private void checkAuthorization(){
        ArrayList<Authorizeduser> athorizedUser= new ArrayList<Authorizeduser>();
        athorizedUser.addAll(AUM.getAuthorizeduser());
        for(Authorizeduser au:athorizedUser){
            if (loggedInUser.equalsIgnoreCase(au.getEmail())){
                setAuthorizeduser(true);
                showUnauthorizeduserMessage = false;
                return;
            }
        }   
    }//end checkAuthorization


    private void retriveTheme(){
        if(authorizeduser){
            this.theme = AUM.findAuthorizeduserByEmail(loggedInUser).getThemepref();
        }else{
            this.theme = "blitzer";
        }
    }


    private void persistTheme(String theme){
        //System.out.println("persistTheme was called");
        ArrayList<Authorizeduser> athorUser= new ArrayList<Authorizeduser>();
        athorUser.addAll(AUM.getAuthorizeduser());
        for(Authorizeduser au:athorUser){
            if (loggedInUser.equalsIgnoreCase(au.getEmail())){
                try {
                    au.setThemepref(theme);
                    AUM.updateAuthorizeduser(au);
                } catch (Exception e) {
                    e.printStackTrace();
                }           
            }
        }
    }


    //Getters and setters
    public String getLoggedInUser() {
        return loggedInUser;
    }

    private void setLoggedInUser(String loggedInUser) {
        this.loggedInUser = loggedInUser;
    }

    public boolean isAuthorizeduser() {
        return authorizeduser;
    }

    private void setAuthorizeduser(boolean authorizeduser) {
        this.authorizeduser = authorizeduser;
    }

    public boolean isshowUnauthorizeduserMessage() {
        return showUnauthorizeduserMessage;
    }

    public void setshowUnauthorizeduserMessage(boolean showUnauthorizeduserMessage) {
        this.showUnauthorizeduserMessage = showUnauthorizeduserMessage;
    }

    public String getTheme() {
        return theme;
    }

    public void setTheme(String theme){
        this.theme = theme;
        this.persistTheme(theme);
    }   


     public String logout() {
         FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
         //System.out.println("logoutRequested");
         return "logout";
     }

    public ScheduleModel getEventModel() {
        return eventModel;
    }

    public void setEventModel(ScheduleModel eventModel) {
        this.eventModel = eventModel;
    }


    }
@ManagedBean(name=“scheduler”)
@视域
公共类SchedulerBean扩展PageCodeBase实现可序列化{
私有静态最终长serialVersionUID=-1426310201082465397L;
私有字符串loggedInUser;
private boolean authorized duser=false;
私有布尔值showUnauthorizeduserMessage=true;
私有字符串主题;
私有AuthorizeduserManager AUM=(AuthorizeduserManager)getManagedBean(“AuthorizeduserManager”);
私有调度模型事件模型;
public void pageOnLoad(){
this.setLoggedInUser(getFacesContext().getExternalContext().getRemoteUser());
这是checkAuthorization();
这是一种新的疗法;
this.eventModel=新的DefaultScheduleModel();
}
私有无效检查授权(){
ArrayList athorizedUser=新的ArrayList();
athorizedUser.addAll(AUM.getAuthorizeduser());
对于(授权人:athorizedUser){
if(loggedInUser.equalsIgnoreCase(au.getEmail())){
setduser(真);
showUnauthorizeduserMessage=假;
返回;
}
}   
}//结束检查授权
私人无效检索主题(){
if(授权人){
this.theme=AUM.findauthoritizeduserbyemail(loggedInUser.getThemepref();
}否则{
this.theme=“blitzer”;
}
}
私有主题(字符串主题){
//System.out.println(“调用了persistTheme”);
ArrayList athorUser=新建ArrayList();
athorUser.addAll(AUM.getAuthorizeduser());
对于(授权用户au:athorUser){
if(loggedInUser.equalsIgnoreCase(au.getEmail())){
试一试{
au.setThemepref(主题);
AUM.updateAuthorizeduser(au);
}捕获(例外e){
e、 printStackTrace();
}           
}
}
}
//接球手和接球手
公共字符串getLoggedInUser(){
返回loggedInUser;
}
私有void setLoggedInUser(字符串loggedInUser){
this.loggedInUser=loggedInUser;
}
公共布尔值isAuthorizeduser(){
返回授权人;
}
私有void setAuthorizeduser(布尔authorizeduser){
this.authorizeduser=authorizeduser;
}
公共布尔值isshowUnauthorizeduserMessage(){
未经授权的退货信息;
}
public void setshowUnauthorizeduserMessage(布尔值showUnauthorizeduserMessage){
this.showUnauthorizeduserMessage=showUnauthorizeduserMessage;
}
公共字符串getTheme(){
回归主题;
}
公共void集合主题(字符串主题){
this.theme=主题;
这个主题(theme),;
}   
公共字符串注销(){
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
//System.out.println(“logoutRequested”);
返回“注销”;
}
公共ScheduleModel getEventModel(){
返回事件模型;
}
public void setEventModel(ScheduleModel eventModel){
this.eventModel=eventModel;
}
}
这是我的MasterLayout.xhtml

 <f:view>
    <!-- WelcomeBar -->
    <div id="WelcomeBar">
      <ui:include src="/resources/templates/WelcomeBar.xhtml"></ui:include>
    </div>


    <f:event listener="#{scheduler.pageOnLoad }" type="preRenderView"></f:event>



    <h:form styleClass="form" id="form1" height="30">
      <p:panel>

        <div id="Header">

          <ui:include src="/resources/templates/Header.xhtml"></ui:include>
        </div>


        <div id="content">
          <ui:insert name="content"></ui:insert>
        </div>

        <div id="Footer">
          <ui:include src="/resources/templates/Footer.xhtml"></ui:include>
        </div>

      </p:panel>
    </h:form>
  </f:view>

</h:body>

这是我的schedule.xhtml,其中包含p:schedule标签:

    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html" 
    template="/resources/templates/MasterLayout.xhtml"
    xmlns:p="http://primefaces.org/ui">


    <!-- Content Properties  -->
    <ui:define name="content">
        <p:schedule value="#{scheduler.eventModel}" widgetVar="myschedule">
        </p:schedule>
    </ui:define>



</ui:composition>  

仅供参考,我创建了一个简单的页面text.xhtml,它可以正常工作。因此,它必须与我的模板制作方式有关:

<h:body>
  <f:view>
    <h:form styleClass="form" id="form1" height="30">
      <p:panel>
          <f:event listener="#{scheduler.pageOnLoad }" type="preRenderView"></f:event>
          <h:outputText value="test"/>
          <p:schedule value="#{scheduler.eventModel}" widgetVar="myschedule">
          </p:schedule>
      </p:panel>
    </h:form>
 </f:view>

</h:body>   


你确定那条路吗<代码>模板=“/resources/templates/MasterLayout.xhtml”?另外,您最好将模板放入
/WEB-INF/templates/
是否有错误?如果你什么都看不到,当你的页面是你的意思时,当你在浏览器中右键单击页面并查看源代码时,你仍然看到未解析的
标记,而不是它生成的HTML表示形式吗?你也在那里的
怎么样?@Daniel是的,除了日程安排外,一切正常。我可以看到我在下面添加的任何内容,我有不同的页面使用该模板,没有任何问题。好的,它生成了所需的HTML。现在留下了潜在的JS错误。主模板中是否有允许JSF/PrimeFaces自动包含CSS/JS内容的
?您在浏览器的JS控制台中没有看到任何JS错误吗?