用于数据源的参数的最简单的URL编码/解码模式

时间:2012-04-12 13:47:19

标签: xpages

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

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

是否有任何特定于XPages的方法来简化此操作?

1 个答案:

答案 0 :(得分:12)

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

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

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

这将为您提供%20ABC%20DEF 的结果,并可作为参数添加到您的网址(fe ?category =%20ABC%20DEF )。< / p>

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

还原它
var hlp = context.getUrlParameter("category");
var param = java.net.URLDecoder.decode (hlp, "utf-8")