0

在我的 xpages 应用程序中,我想根据角色重定向用户。但是,计算出的 URL 会导致一个丑陋的 URL,路径名中带有 %5C

var baseURL = context.getUrl().toString().split(facesContext.getExternalContext().getRequest().getRequestURI())[0];

var path =escape(database.getFilePath());

if (context.getUser().getRoles().contains("[Administrator]") || context.getUser().getRoles().contains("[SuperAdmin]") || context.getUser().getRoles().contains("[Ledamot]")){
    facesContext.getExternalContext().redirect(baseURL + slash + path + "/employees.xsp?sorting=asc")
}else{
    context.redirectToPage("index.xsp")
}

这会导致类似:https://server/directory%5cdatabase.nsf/employees.xsp?sorting=asc

4

2 回答 2

1

由于您正在重定向到同一个数据库,因此您可以像这样计算 url 前缀(主机 + 数据库路径):

context.getUrl().toString().split(view.getPageName())[0]
于 2018-10-18T08:42:50.373 回答
1

%5c 是一个反斜杠,所以你要做的就是用正斜杠替换文件路径中的反斜杠。所以这样的事情应该有效:

database.getFilePath().replace("\\", "/");
于 2018-10-15T12:15:08.787 回答