我需要将Primefaces AJAX Status对话框的显示延迟X毫秒,但OmniFaces ExceptionHandler对javascript超时解决方案的反应非常糟糕.
这是我到目前为止所得到的:
<p:ajaxStatus onstart="showStatusDialog();" onsuccess="hideStatusDialog();" onerror="hideStatusDialog();"/>
<script type="text/JavaScript">
var statusDlgTimer = null;
function showStatusDialog()
{
if (statusDlgTimer === null)
{
statusDlgTimer = setTimeout("statusDialog.show()", 700);
}
}
function hideStatusDialog()
{
if (statusDlgTimer !== null)
{
clearTimeout(statusDlgTimer);
statusDialog.hide();
statusDlgTimer = null;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
只要AJAX调用中没有错误发生,这就完美地工作.我正在使用OmniFaces FullAjaxExceptionHandler来处理AJAX /非AJAX异常.
我的假设是,因为在呈现错误页面时重新加载JavaScript,所以从未检测到对statusDlgTimer的引用是!== null,但我还没有找到一个好的解决方法.
我在Java 8中实现了一个复制构造函数,并使用它:
User user = // some object
LOG.debug("{}", user);
this.userAccount = new User(user);
LOG.debug("{}", this.userAccount);
Run Code Online (Sandbox Code Playgroud)
输出:
User@2799061
User@2799061
Run Code Online (Sandbox Code Playgroud)
这是同一个对象!怎么会这样?这是某种我没有意识到的最优化吗?
此外,我的"用户"类是JPA管理实体.这会以某种方式干涉吗?
这是我想要做的:
@ViewScopedJSF bean,我在其中使用 Jersey 调用 JAX-RS 服务。image/svg+xml。到目前为止,我的研究使我相信:
h:graphicImage (核心 JSF)不支持 SVGp:graphicImage (PrimeFaces) 不支持 SVGo:graphicImage (OmniFaces) 也不支持 SVG。有没有办法从支持 bean 将 SVG 图像传送到 facelets 页面?服务 SVG 图像的服务将在稍后扩展以支持交付(以及其他格式)PNG,但我希望直接使用 SVG。
jsf ×2
omnifaces ×2
glassfish-4 ×1
java ×1
java-8 ×1
java-ee-7 ×1
jpa ×1
jsf-2.2 ×1
primefaces ×1