You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GlassFish7中使用jsf.ajax报错“jsf未定义”的排查求助

问题原因

Jakarta EE 10配套的是Jakarta Faces 4.0,相比旧版JSF,API命名空间从javax.faces全面迁移到jakarta.faces,对应的全局JavaScript对象也从jsf改成了jakarta.faces,这就是你代码里jsf未定义的根本原因。

最小改动解决方案

直接把代码里的jsf替换成jakarta.faces就行,修改后的完整代码如下:

jakarta.faces.ajax.addOnEvent(function (data) {
    var ajaxstatus = data.status; // 状态值可选:"begin"、"complete"、"success"
    var ajaxloader = document.getElementById("ajaxloader");

    switch (ajaxstatus) {
        case "begin":
            console.log("请求开始");
            ajaxloader.style.display = "block"; // 显示加载组件
            break;

        case "complete":
            console.log("请求完成");
            ajaxloader.style.display = "none"; // 隐藏加载组件
            break;

        case "success":
            console.log("请求成功");
            // 可按需添加成功后的额外逻辑
            break;
    }
});
补充说明
  • 确保页面使用<h:head>标签,Jakarta Faces会自动注入所需的Ajax脚本,不用手动引入外部文件。
  • 页面里要提前准备好ID为ajaxloader的加载状态元素,比如:
<div id="ajaxloader" style="display:none; position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); padding:1rem; background:#fff; border-radius:4px;">
    加载中,请稍候...
</div>

内容的提问来源于stack exchange,提问作者FarshiD Naqizadeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 02:17:03