XPages - 在URL查询字符串中使用Ampersand

时间:2012-10-25 19:39:31

标签: cgi query-string xpages xpages-ssjs

我有一个XPage,它以URL参数的形式将信息传递给另一个XPage(这很重要,因为SEO)。我可以使用:java.net.URLEncoder.encode对URL进行编码,然后我可以在参数值中使用&符号,我只能使用param.get()来获取值而不解码它们。这样可以正常工作,但是当我将它与服务器端替换相结合时,它不能按预期工作,它会将&符号恢复为正常的&符号而不是%26。任何想法都会在这里真的很感激吗?由于SEO,服务器端替换也很重要。

更新

这是地址栏中显示的提交前的URL(如果我们假设我的类别是Fruit& Vegetables):

/product-byCategory/Fruit+%26+Vegetables

服务器端替换规则是:

- /product-byCategory/*
- /mywebsite.nsf/xspProductByCat.xsp?cat=*

查询字符串值为:

cat=Fruit+&+Vegetables

有趣的是,如果我在地址栏中输入此URL,我会得到正确的查询字符串:

http://www.mywebsite.com/mywebsite.nsf/xspProductByCat.xsp?cat=Fruit+%26+Vegetables

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但我搜索(并找到)了一个不同的解决方案。我不需要替换,我不使用QueryString,谷歌显然不介意。

我使用这种类型的网址:

http://www.mywebsite.com/mywebsite.nsf/xspProductByCat.xsp/Fruit+%26+Vegetable

我通过

获取扩展信息,而不是QueryString
    var name= facesContext.getExternalContext().getRequestPathInfo();

以这种方式创建的网站页面由Google和Bing正确编入索引。我们对页面排名并不完全满意,但这是一个不同的主题。

以下是websiteextended URL

的示例