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

Domino 12.0.2中getRequestPathInfo()返回null问题求助

问题原因及解决办法

原因

Domino 12.0.2版本对XPage请求生命周期的初始化逻辑做了调整,beforePageLoad属于页面加载的极早期阶段,此时getRequestPathInfo()依赖的请求路径信息尚未完成初始化,导致返回null。而旧版本Domino中,请求路径信息的初始化时机更早,因此该代码能正常返回值。

解决办法

方法1:直接获取请求参数(推荐)

如果UNID是通过URL参数(如documentId)传递的,不需要解析路径,直接从请求参数中提取更可靠:

var request = facesContext.getExternalContext().getRequest();
var unid = request.getParameter("documentId");
// 或者用XSPContext的参数映射
var xspContext = com.ibm.xsp.context.XSPContext.getXSPContext(facesContext);
var unid = xspContext.getRequestParameterMap().get("documentId");

方法2:获取完整请求URL并解析

若必须通过路径信息获取,可以通过getRequestURI()和getQueryString()拼接完整URL后再解析:

var externalContext = facesContext.getExternalContext();
var request = externalContext.getRequest();
var requestUri = request.getRequestURI();
var queryString = request.getQueryString();
var fullUrl = queryString ? requestUri + "?" + queryString : requestUri;
// 根据你的URL结构解析UNID,比如用正则匹配
var unidMatch = fullUrl.match(/\/([0-9A-F]{32})\/?/i);
var unid = unidMatch ? unidMatch[1] : null;

方法3:利用XSPContext获取请求URL

XSPContext提供了更适配XPage的请求信息获取方式,在早期阶段兼容性更好:

var xspContext = com.ibm.xsp.context.XSPContext.getXSPContext(facesContext);
var requestUrl = xspContext.getRequestUrl().toString();
// 解析UNID逻辑同方法2
var unidMatch = requestUrl.match(/\/([0-9A-F]{32})\/?/i);
var unid = unidMatch ? unidMatch[1] : null;

内容的提问来源于stack exchange,提问作者Peter Della-Nebbia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:45:30