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