Grails - 远场和&符号

时间:2012-06-13 14:33:25

标签: ajax grails

当我尝试在grails中使用remoteField ajax标记时,我发现了一些东西。当我输入&符号(&)时,在获取参数值时,我的控制器中无法识别该值。

示例:我将输入Cat&狗 我所看到的:猫

我该如何避免这种情况?这是一个已知的错误?我在网上找不到这个。

修改

我很确定这是由于url编码和参数,因为&符号通常是参数分隔符。只是不确定如何解决这个问题。

<g:remoteField action="getName" update="testDiv" paramName="search" name="nameSearchResults" value="" />

控制器:

def getName() {
    println "Search result = " + params.search
    //When typing "Cat & Dog" I get:
    //Search result = C
    //Search result = Ca
    //Search result = Cat
    //Search result = Cat 
    //Search result = Cat
}

1 个答案:

答案 0 :(得分:1)

您是否尝试过对remoteField中的文字进行网址编码?

我建议使用JavaScript添加before属性来对输入进行URL编码:

<g:remoteField action="getName" update="testDiv" paramName="search" name="nameSearchResults" value="" before="encodeURIComponent(this.value); return true;" />

然后您必须在控制器中对其进行解码。