Jsf 如果页面包含b:carousel,SPA方法不起作用

Jsf 如果页面包含b:carousel,SPA方法不起作用,jsf,carousel,single-page-application,bootsfaces,Jsf,Carousel,Single Page Application,Bootsfaces,环境: 我正在用JSF2.2、Bootsfaces 0.9.1、Primefaces 6.0、JEE7和Hibernate 5.2以及MySQL 5.7DB编写SPA 我所拥有的: 我的SPA的上部有一个导航栏,左侧有一个基于导航栏选择的特定菜单。在导航栏的右侧和下方,我有我的主“内容页”。与此图片类似,但不同之处在于我的菜单是动态的: 为了更新内容页,我正在使用AJAX 只要我的内容页不包含b:carousel,导航周围的一切都如我预期的那样工作 我想做什么: 如上所述,我的SPA和所有导航

环境:

我正在用JSF2.2、Bootsfaces 0.9.1、Primefaces 6.0、JEE7和Hibernate 5.2以及MySQL 5.7DB编写SPA

我所拥有的:

我的SPA的上部有一个导航栏,左侧有一个基于导航栏选择的特定菜单。在导航栏的右侧和下方,我有我的主“内容页”。与此图片类似,但不同之处在于我的菜单是动态的

为了更新内容页,我正在使用AJAX

只要我的内容页不包含b:carousel,导航周围的一切都如我预期的那样工作

我想做什么:

如上所述,我的SPA和所有导航都正常工作,除非我在内容页中添加了一个b:carousel

请考虑以下例子:

我有两个内容页。第1页包含一个带有一些文本的标签。第2页包含一个带有一些图像的b:carousel。第1页是欢迎页。 当我从第1页浏览到第2页时,什么也没发生。我需要完全刷新整个页面才能看到第2页,即使每次都不起作用

我的主要问题:

如果内容页面上有一个b:carousel,那么有什么技巧可以用ajax更新内容页面吗? 我做错了什么

编辑:

我在github上创建了一个示例项目,这样您就可以明白我的意思了。我使用了Java1.8、Tomcat8.0.36和NetBeansIDE,但是该项目是一个Maven项目,也应该在eclipse中工作

项目:

我部分使用的SPA方法:


这个问题与我之前的问题相关:

它是两个bug的组合:

  • 您在GitHub的示例使用了PrimeFaces,但它似乎没有使用PrimeFaces组件。其效果是PrimeFaces添加了一些奇特的JavaScript来动态加载丢失的CSS文件(这太棒了!),但它没有添加PrimeFaces核心库,因此Mojarra遇到了一个异常,它悄悄地隐藏了这个异常。您可以通过在页面中添加(可能隐藏的)PrimeFaces组件来解决这个问题,直接包括PrimeFaces core.js文件(尽管我不建议这样做),或者——当然——如果您确实不需要它,可以删除PrimeFaces依赖项

    • BootsFaces依赖HTML属性来初始化旋转木马。令我惊讶的是,这甚至起作用,至少部分起作用。但是,要自动启动滑动,仍然需要手动初始化JavaScript小部件。对你来说,那是 $(“#myCarousel”).carousel();

顺便说一句,我建议您在我们的bug追踪器上打开一个bug来修复后一点()。提前谢谢

还有很多问题与你的申请有关。如何执行导航?你看到错误日志了吗?测试它的正确方法是实现一个示例,将它与MySql层隔离,并提供最少的代码来重现问题。请参见此处如何创建一个。如果您提供了复制它所需的一切,或者您将一个示例项目上载到github,我会查看它。明天一有时间,我就会创建一个示例项目!我在github上添加了一个示例项目,所以请随意测试它!我没有看到任何错误日志,所以一切都应该正常。感谢您的回答,我明天将试用您的第一个示例,看看它是否有效。第二个问题是:我需要在其他页面上使用primefaces,例如上载多个文件等等。我不需要自动启动滑动,所以仍然需要通过javascript启动滑动,还是我可以忽略这一点,让用户手动滑动?将隐藏的primefaces组件添加到我的主页(index.xhtml)解决了这个问题。我还在你的bug追踪器()上打开了一个新标签。谢谢你的帮助!为了完整起见(因为您可能已经了解了自己):旋转木马即使没有JavaScript也能工作(尽管我不知道为什么,这不是我所期望的)。对于高级选项,您只需要JavaScript。