2016-09-26 84 views
-1

使用Primefaces 6.0/jsf 2.2.6。Primefaces 6.0 xhtml页面显示从另一个页面重定向空白

我有一个页面(安全),它包括一个bean支持的另一个页面(不安全,有2个入口点到不安全的页面,因此这个设置),它使用一个模板,

所以第一安全页面有:

<h:body> 
     <ui:include src="../unsecure/eacCalculator.xhtml" /> 
</h:body> 

第二页:

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:p="http://primefaces.org/ui" 
    xmlns:pe="http://primefaces.org/ui/extensions" 
    xmlns:f="http://xmlns.jcp.org/jsf/core"> 

<h:head> 
    <script type="text/javascript"> 
     $(document).on("keypress", ":input:not(text,textarea)", function (event) { 
      if (event.keyCode == 13) { 
       event.preventDefault(); 
      } 
     }); 

    </script> 
</h:head> 
<ui:composition template="#{eacCalculatorBean.template}" > 
    <f:event listener="#{eacCalculatorBean.getScreenStartupData()}" type="preRenderComponent" /> 
    <ui:define name="page-content"> 



....... 

如果我登录后直接点击页面的URL从一个动态内置菜单项,然后页面加载正常。但是,如果我先到另一个页面,然后从那里再次点击上述页面的菜单项,它会加载一个空白页面。如果我重新点击菜单项,页面会重新渲染。

有什么可能的原因可能导致在第一次加载另一个页面后不加载?

+0

嗨,欢迎来到stackoverflow。请创建一个[mcve]。 – Kukeltje

+0

它太复杂了,因为菜单项是动态构建的 –

+0

对不起,但是如果你不能创建[mcve](是重现问题所需的动态菜单吗?难道它只是被遗漏了吗?)我怀疑任何人都可以帮你。 javascript是例如我认为这肯定是不相关的 – Kukeltje

回答

0

您使用包含文件的相对路径。如果您的第二页位于与登录后页面不同的路径内,则可能无法解析文件位置。

  • 看看作为AS日志文件,如果文件位置不能得到解决
  • 尝试内模板的绝对路径,以排除这个问题

    <ui:include src="/path/to/unsecure/eacCalculator.xhtml" />

0

好了很多调试完毕后我其实发现了这个问题。 “使用哪个模板”被推迟到创建bean的事实导致xhtml中的CustomMenu仅在Bean实例化后触发。简而言之,就是使用之前的屏幕设置,这会导致css将数据向右滑动(这会使屏幕变为空白)。

相关问题