我现在用Primefaces 6.2附表组分工作了几天,我无法找到答案,解决使用组件我的问题。我需要在这个问题上的一些技术建议。
我已经创建了像这样的组合物内的附表分量的图:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:form id="content-form">
<p:outputPanel id="page-title-myevents">
<h3>#{translations['pvm_myevents']}</h3>
</p:outputPanel>
<h5>#{translations['misc_myscheduler']}</h5>
<p:schedule id="myScheduler" value="#{myEventsBean.eventModel}" widgetVar="myscheduler" timeZone="#{appSettingsBean.uiTimeZone}">
<p:ajax event="dateSelect" listener="#{myEventsBean.onDateSelect}" update="myEventDetails" oncomplete="PF('myEventDialog').show();" />
<p:ajax event="eventSelect" listener="#{myEventsBean.onEventSelect}" update="myEventDetails" oncomplete="PF('myEventDialog').show();" />
<p:ajax event="eventMove" listener="#{myEventsBean.onEventMove}" update="myEventMessages" />
<p:ajax event="eventResize" listener="#{myEventsBean.onEventResize}" update="myEventMessages" />
</p:schedule>
<p:dialog widgetVar="myEventDialog" header="Event details" modal="true">
<h:panelGrid id="myEventDetails" columns="2">
<p:outputLabel for="myEventTitle" value="#{translations['fld_eventtitle']}" />
<p:inputText id="myEventTitle" value="#{myEventsBean.event.title}" required="true" />
<p:outputLabel for="myEventFrom" value="#{translations['fld_from']}" />
<p:calendar id="myEventFrom" value="#{myEventsBean.dateFrom}" timeZone="#{appSettingsBean.uiTimeZone}" pattern="#{appSettingsBean.uiDateTimePattern}" />
<p:outputLabel for="myEventTo" value="#{translations['fld_to']}" />
<p:calendar id="myEventTo" value="#{myEventsBean.dateTo}" timeZone="#{appSettingsBean.uiTimeZone}" pattern="#{appSettingsBean.uiDateTimePattern}" />
<p:outputLabel for="myEventAllDay" value="#{translations['fld_allday']}" />
<h:selectBooleanCheckbox id="myEventAllDay" value="#{myEventsBean.event.allDay}" />
<p:commandButton id="myEventResetForm" type="reset" value="#{translations['btn_reset']}" />
<p:commandButton id="myEventUpdate" value="Save" action="#{myEventsBean.addEvent}" oncomplete="PF('myscheduler').update();PF('myEventDialog').hide();" />
</h:panelGrid>
</p:dialog>
<p:messages id="myEventMessages" showDetail="true" closable="true">
<p:autoUpdate />
</p:messages>
<hr></hr>
</h:form>
</ui:composition>
我有各种成分和他们都得到加载我dashboard.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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:include src="/themes/theme.xhtml"/>
<h:body>
<ui:insert name="header" >
<ui:include src="/main-dashboard/my-topnav.xhtml"/>
</ui:insert>
<ui:insert name="content" >
<ui:include src="/main-dashboard/my-sidenav.xhtml"/>
<p:outputPanel id="dashboard-container">
<ui:include src="/main-dashboard/my-sidenavtoggler.xhtml"/>
<p:outputPanel id="content-window">
<p:outputPanel id="content-panel">
<ui:include src="#{contentLoaderBean.mainContent}" />
</p:outputPanel>
</p:outputPanel>
</p:outputPanel>
</ui:insert>
</h:body>
</html>
这是实际上是内置(其他人仍然是空的)我的第一组合物。我加载一个简单的ScheduleModel给它一个@PostConstruct豆@ViewScoped里面。由于I'don't在我的数据库中的任何事件,然而,我设定的模型,像这样:setEventModel(new DefaultScheduleModel());
第一问题:如果我把一些随机生成的事件模型里,有时它们会在视图中显示,有时他们没有。我不明白为什么会这样的。我不明白用Java或JavaScript控制台的任何错误,它只是随机的。懒惰模型的工作原理相同。
第二个问题:空或满进度模型,无所谓。页面加载时我通常会一个JavaScript警告说:
?jquery.js.xhtml LN = primefaces&V = 6.2:4弃用]同步XMLHttpRequest的主线程上的,因为其所带来的影响最终用户的体验弃用。如需更多帮助,请https://xhr.spec.whatwg.org/
第三个问题:你可能已经注意到我也有内容形式中的对话框。在日期选择事件此对话框火灾,当我尝试,然后从它抛出一个有趣的JavaScript错误(未捕获的错误类型)的日期选择器组件的日期,像这样:
这很有趣,因为如果我尝试做在Firefox同样的事情,它抛出一个不同的错误,像这样:
微软边缘根本不会引发错误。
注意:日期选择器可能是一个问题,也是因为它不弹出时进度加载和显示用随机生成数据的模型。如果调度无法加载模式,日期选择器会弹出并选择任何日期时抛出未捕获的类型错误。
不要紧,我选择哪个日期,错误抛出。因为Ajax请求不正确触发,bean的方法不火可言,所以我认为这是对需要被妥善固定观察侧的东西。
我试过和禁用所有自定义CSS和JS进口(现在用引导4.2.1 CSS和为设计目的JS)和手动清洁部署目录。我也确信我的项目是通过清除浏览历史记录和缓存不老的资源加载。我至今没有运气解决这些问题(所有警告和错误保持不变)。
我不知道是否所有的三个问题是相关的或没有,但我已经把他们在同一职位。有时候解决一个问题,解决了其他人。因为它们都在同一个组成发生这只是可能会再次如此。
让我知道如果我能以任何方式提供更多的细节,我会尽我所能。
谢谢。
编辑:基于从@Melloware收到的评论。升级Primefaces 6.2 Primefaces 7 RC2解决了一些问题,对我来说。弃用警告和未捕获的类型错误,现在都没有了。第一个问题仍然存在。调度成分不显示时间表对象或“事件”。在调试模式中,我发现,创建时间表对象,并推到进度模型。所有我现在需要的,是视图组件向他们展示。
由于我是能够解决的最后一块拼图我的,没有时间表显示我的日程安排的对象,我会写一个完整的回答我的问题。
通过@Melloware提供答案帮助我与我的核心设计前进。升级Primefaces 6.2 Primefaces 7 RC2去除的废弃警告和未捕获的类型错误。现在,我能够找到并实施了我最后的问题的解决,在加载进度的对象。
我已经通过我的内容装载机豆做了新手的错误我加载内容。准确地说,我同时推链接到我的内容装载机豆负责处理被执行导航操作时,下一步应该加载已经实现内容导航。导航行动应与CommandLink组件Action属性被调用。这里是我做了我的设计错误。我用ActionListener属性相反,导致在我的内容没有得到正确加载的情况。
下面是从@BalusC的职位,得到了我的车轮再次纺报价:
操作方法可以(因此,不必须)返回,其将被用作导航的情况下的结果(目标视图)的字符串。空或无效的返回值将让它回归到同一个页面,并保持当前视图范围活着。空字符串或相同的观点ID的返回值也将返回到相同的页面,但重新创建视图范围,从而摧毁任何当前活动视图范围的Bean,如果适用,重新创建。
全文后可以在这里找到:differences-between-action-and-actionlistener
我今天新长了不少见识。
谢谢!