xpages - 与数据源一起使用的参数的最简单 URL 编码/解码模式

标签 xpages

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

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

是否有任何 XPage 特定方法可以简化此操作?

最佳答案

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

但是您可以使用 Java。在给URL添加参数之前,可以使用这个SSJS:

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

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

要解码 SSJS 中的参数,您可以使用以下命令恢复它

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

关于xpages - 与数据源一起使用的参数的最简单 URL 编码/解码模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124901/

相关文章:

twitter-bootstrap - 使应用程序布局与 Bootstrap 一起工作 4 页

java - 在 XPage 中显示和编辑富文本字段

request - XPage:如何使用 post http 方法在 2 个 xpage 之间发送数据?

osgi - XPage Osgi 插件开发

javascript - XPages - 获取对话框内文本区域的值

java - 编写自定义数据库 Servlet

java - 我用 Java 创建了自己的记录器。这是一个坏主意吗?

ajax - 有没有办法将 html 表单中的数据发布到 Lotus Notes 数据库中

javabeans - 30 秒定期任务轮询外部 Web 服务和缓存数据

performance - 为大量用户和高性能设计 XPage 应用程序