你如何处理这样的事实,即URL在xPages中是区分大小写的?

Dav*_*rko 3 xpages

你如何处理这样一个事实,即使参数,URL在xPages中也区分大小写?例如URL:

my_page.xsp?folderid=785478 ... is not the same as ...
my_page.xsp?FOLDERID=785478
Run Code Online (Sandbox Code Playgroud)

例如,如何正确检查params包含一些键,例如param.containsKey("folderid"),当URL中存在"FOLDERID"时,它会停止工作.

Tim*_*ony 5

我建议定义一些方便的@Functions:

var @HasParam = function(parameter) {
 var result:boolean = false;
 for (var eachParam : param.keySet()) {
  if (eachParam.toLowerCase() == parameter.toLowerCase()) {
   result = true;
   break;
  }
 }
 return result;
};

var @GetParam = function(parameter) {
 var result = "";
 if (@HasParam(parameter)) {
  for (var eachParam : param.keySet()) {
   if (eachParam.toLowerCase() == parameter.toLowerCase()) {
    result = param.get(eachParam);
    break;
   }   
  }
 }
 return result;
};
Run Code Online (Sandbox Code Playgroud)

然后,您可以安全地查询参数,而无需关心案例.对于奖励积分,您可以添加requestScope缓存,以便在检查先前在同一请求中查看的参数时跳过keySet.

  • 根据w3c,url可以区分大小写,但是大多数Web服务器都忽略了这个要求.http://www.w3.org/TR/WD-html40-970708/htmlweb.html (2认同)
  • 正如pipalia所提到的,您可以使用URL替换和重定向来解释用户错误地手动输入地址和/或为他们提供更容易记住的地址.但坦率地说,如果您的用户感觉需要在应用程序中手动键入深层链接,那么应用程序的布局很可能设计得很糟糕. (2认同)