使用JSF从Chrome In Chrome中的数据库记录渲染问题



我正在使用XHTML页面中的标准F:ViewParam来加载DB的某个记录,然后再呈现页面。当我不将Chrome用作浏览器时,这只是完美的选择。因此,在Firefox,Safari和Edge中,该页面随着预期的预期渲染,其中包含有关请求记录的详细信息。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:pe="http://primefaces.org/ui/extensions"
  xmlns:kf="http://wspsoft.de/kolibri/platform/faces" xmlns:h="http://java.sun.com/jsf/html"
  xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
  xmlns:p="http://primefaces.org/ui" xmlns:c="http://java.sun.com/jstl/core">
<f:metadata>
  <f:viewParam name="addressId" value="#{newAddressCRBean.addressId}"/>
  <f:viewParam name="formView" value="#{newAddressCRBean.formView}"/>
</f:metadata>
...

但是,当在所有时间中使用Chrome时,页面都会呈现,但没有显示数据,仅显示为空P:InputFields和p:outputLabels。其他20%的页面得到正确渲染。

在日志中,我可以看到从f:viewParam调用正确的函数,就像在成功的情况下一样,包含记录的正确ID。按下刷新按钮后,页面始终得到正确渲染,包含有关请求记录的有用信息。

与其他兄弟相比,任何人都知道Chrome的不同之处以及我如何强迫Chrome表现正确吗?

预先感谢。

好吧,即使我仍然没有100%确定出了什么问题,也要修复它。我问题的根本原因是我的豆类和这种机制的视图(http://javaevangelist.blogspot.de/2014/08/jsf-21-tip-21-tip-of-day-clearing-viewscope.html)ViewScoped Bean和垃圾收集。在页面呈现时,豆子以某种方式被杀死并重新定案,从而导致我原始帖子中提到的奇怪效果。

我通过重写John Rearys提示解决了问题,不要删除最新视图,而是保留10个视图列表,并始终从列表中删除最古老的视图。

为什么Chrome确切地促进了这种奇怪的行为和所有其他浏览器D我不是不能说,但我想这与铬内速的优化有关。

最新更新