2

应用程序使用按类别过滤视图中的文档的机制 - 查找所有可用类别(仅少数)并将其提供给 Outline 组件。然后每个大纲条目添加在视图数据源中使用的 URL 参数,以按类别过滤文档。问题在于非 ANSI 字符(国际)。在许多情况下,它按预期工作,但一些代理禁止在 URL 中使用这些字符。

解决方法是使用 url 的编码/解码,这使得视图数据源的 Category 属性中的 SSJS 代码变得复杂:不是简单context.getUrlParameter("category");,而是需要解码参数,这是“复杂的”,例如:http:// www.mkyong.com/java/how-to-encode-a-url-string-or-form-parameter-in-java/

是否有任何 XPages 特定的方法来简化这一点?

4

1 回答 1

13

旧 RFC 规范中不允许使用非 ANSI 字符,必须对其进行编码。有名为escapeunescape的 SSJS 函数,但它们不能正常工作(最后用 8.5.3 测试)

但是您可以改用Java。在向 URL 添加参数之前,您可以使用此 SSJS:

java.net.URLEncoder.encode (" ABC DEF", "utf-8")

这将为您提供%20ABC%20DEF的结果,并且可以作为参数添加到您的 URL (fe ?category=%20ABC%20DEF )。

要解码 SSJS 中的参数,您可以使用

var hlp = context.getUrlParameter("category");
var param = java.net.URLDecoder.decode (hlp, "utf-8")
于 2012-04-12T14:51:58.200 回答